大型数组是否完全用Java存储在内存中?

时间:2016-02-24 18:51:11

标签: java android memory memory-management

我正在为Android编写一个小应用程序,我担心内存消耗。

我将在对象的构造函数中初始化一个包含大量字符串变量的数组。可能有数千个字符串变量,每个段落长一段。但我担心所有这些都会存储在内存中。

该应用程序将一次显示一个数组变量。这会影响应用程序的性能吗?我希望应用程序一次将一个字符串变量加载到内存中。

2 个答案:

答案 0 :(得分:2)

数组将存储在内存中。另一种选择是将它们写入磁盘并在需要时从磁盘读取它们,这非常慢。在不知道应用程序的结构或目的的情况下,我建议尝试以只在需要时将其添加到内存中的方式存储数据。

答案 1 :(得分:1)

  

大型数组是否完全用Java存储在内存中?

是。

  

我将初始化一个包含很多字符串变量的数组   对象的构造函数。可能有数千个字符串变量   每个段落长

这是一个非常糟糕的主意。

  

这会影响应用的性能吗?

是的,特别是在硬件资源有限的低端设备上。

很难根据您提供的信息提出任何具体内容,您肯定需要某种方法来缓存数据,然后根据需要加载它而不是在设备中保留大量数组内存(除了性能问题和可能的UI影响之外,如果内存耗尽,系统可能会简单地杀死你的应用程序,这在低端设备上会非常快)。

  

希望应用程序一次将单个字符串变量加载到内存

这有点过分,并且还会大大减慢您的数据访问速度,因为RAM是您的应用程序可用的最快存储空间。