2016-02-24 16 views
1

我正在爲Android編碼一個小應用程序,我很擔心內存消耗。大型數組是否會完全用Java存儲在內存中?

我將在一個對象的構造函數中初始化一個包含大量字符串變量的數組。可能有數千個字符串變量,每個段落長。但我擔心所有這些都會存儲在內存中。

該應用程序一次只顯示一個數組變量。這會影響應用程序的性能嗎?我希望應用程序一次加載單個字符串變量到內存。

+1

是的,數組存儲在內存中。你還有什麼地方要存放它們?文件系統?訪問速度會慢得多。 –

+1

如果您一次只使用一個變量,爲什麼不將String數組存儲在數據庫中,索引它並根據需要獲取?它速度不會太快,但您不必擔心內存使用。 –

回答

2

數組將被存儲在內存中。另一種選擇是將它們寫入磁盤並在需要時從磁盤讀取它,這非常緩慢。如果不知道應用程序的結構或用途,我會建議嘗試以僅在需要時纔將其添加到內存中的方式存儲數據。

1

大型數組是否會完全用Java存儲在內存中?

是的。

我將用一個對象的構造函數在 之內初始化一個包含大量字符串變量的數組。可能有成千上萬的字符串變量 每段長

這是一個非常糟糕的主意。

這會影響應用程序的性能嗎?

是的,特別是在硬件資源有限的低端設備上。

根據您提供的信息很難提供任何特定的信息,您肯定需要某種方式緩存數據,然後根據需要加載它,而不是將大量數組保存在設備內存中(除了性能問題和可能的用戶界面影響,如果系統內存不足,系統可能會簡單地殺死你的應用程序,這在低端設備上可能會發生得相當快)。

希望應用程序在每次加載一個字符串變量的存儲

這是一個有點矯枉過正,也將顯著減慢你的數據訪問,因爲RAM是最快的存儲您的應用程序已可用。

相關問題