Java字符串数组的内存使用情况

Rus*_*ell 3 java arrays data-storage

java字符串数组占用多少空间?更具体地说,字符串数组看起来像这样的空间(以字节为单位):

Longbowman 
kingdom   
lord    
weapon1,weapon2,weapon3    
armor1,armor2,armor3
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我要创建一个包含5,000多个这些数组的程序,并想知道它将占用多少空间,所以我知道是否应该重做数据存储.

那么回顾一下,字符串数组(如果可量化的话)占用了多少空间?

Jon*_*eet 16

字符串数组只是一个引用数组 - 大小为N的数组将占用大约(N*4 + 20)或(N*8 + 20)个字节,具体取决于JVM中引用的大小.

如果你有兴趣在你的总存储,你应该工作,你有多少独立的String对象了,而且你多少阵列得到.如果你有5000个数组,但它们大多包含对相同几个字符串的引用,那么它很可能会很好.如果你有5000个数组,每个数组包含5个字符串,这些字符串在其他任何地方都没有使用,那就是25,000个字符串......它们可能不是很多(长度为20的字符串可能需要大约60个字节).

当然,上下文在这里很重要:你的代码会运行什么?如果它在台式电脑上运行,那么取一些兆可能不是问题......这可能是手机上的一个问题.

  • @Russell:嗯,不是真的 - 因为这取决于这些字符串是否共享. (2认同)