我正在为Android编写一个小应用程序,我担心内存消耗。
我将在对象的构造函数中初始化一个包含大量字符串变量的数组。可能有数千个字符串变量,每个段落长一段。但我担心所有这些都会存储在内存中。
该应用程序将一次显示一个数组变量。这会影响应用程序的性能吗?我希望应用程序一次将一个字符串变量加载到内存中。
答案 0 :(得分:2)
数组将存储在内存中。另一种选择是将它们写入磁盘并在需要时从磁盘读取它们,这非常慢。在不知道应用程序的结构或目的的情况下,我建议尝试以只在需要时将其添加到内存中的方式存储数据。
答案 1 :(得分:1)
大型数组是否完全用Java存储在内存中?
是。
我将初始化一个包含很多字符串变量的数组 对象的构造函数。可能有数千个字符串变量 每个段落长
这是一个非常糟糕的主意。
这会影响应用的性能吗?
是的,特别是在硬件资源有限的低端设备上。
很难根据您提供的信息提出任何具体内容,您肯定需要某种方法来缓存数据,然后根据需要加载它而不是在设备中保留大量数组内存(除了性能问题和可能的UI影响之外,如果内存耗尽,系统可能会简单地杀死你的应用程序,这在低端设备上会非常快)。
希望应用程序一次将单个字符串变量加载到内存
这有点过分,并且还会大大减慢您的数据访问速度,因为RAM是您的应用程序可用的最快存储空间。