Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大型数组是否完全用Java存储在内存中?_Java_Android_Memory_Memory Management - Fatal编程技术网

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

大型数组是否完全用Java存储在内存中?,java,android,memory,memory-management,Java,Android,Memory,Memory Management,我正在为Android编写一个小应用程序,我担心内存消耗 我将在一个对象的构造函数中初始化一个包含大量字符串变量的数组。每个段落可能有数千个字符串变量。但我担心所有这些都会被存储在内存中 应用程序将一次显示一个数组变量。这会影响应用程序的性能吗?我希望应用程序一次加载一个字符串变量到内存中 数组将存储在内存中。另一种选择是将它们写入磁盘,并在需要时从磁盘读取,这非常慢。在不知道应用程序的结构或用途的情况下,我建议尝试以一种只在需要时才将数据添加到内存中的方式来存储数据 大型数组是否完全用Java

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

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


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

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

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

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

这是一个非常糟糕的主意

这会影响应用程序的性能吗

是的,尤其是在硬件资源有限的低端设备上

仅仅根据您提供的信息很难提出任何具体的建议,因为您肯定需要某种方式来缓存数据,然后根据需要加载数据,而不是在设备的内存中保留巨大的数组(除了性能问题和可能的UI影响外,如果应用程序内存不足,系统可能会简单地杀死你的应用程序,这在低端设备上很快就会发生)

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


这有点过分,而且会大大降低数据访问速度,因为RAM是应用程序可用的最快的存储设备。

是的,阵列存储在内存中。您还打算将它们存储在哪里?文件系统?访问速度会慢得多。如果一次只使用一个变量e、 为什么不将字符串数组存储在数据库中,根据需要对其进行索引和获取呢?它不会那么快,但您不必担心内存使用问题。