Java char 数组似乎每个 char 需要 2 个以上的字节
当我运行以下程序(运行) 时:"java -Xmx151M -cp . com.some.package.xmlfun.Main"
package com.some.package.xmlfun;
public class Main {
public static void main(String [] args) {
char [] chars = new char[50 * 1024 * 1024];
}
}
我需要将最大内存增加到至少151M(-Xmx151M)。因此,当我增加数组大小时,需要增加限制:
- 50 * 1024 * 1024 -> -Xmx151M
- 100 * 1024 * 1024 -> -Xmx301M
- 150 * 1024 * 1024 -> -Xmx451M
为什么看起来Java每个字符需要3个字节,而不是文档建议的2个字节?
此外,当我同样创建长数组时,它似乎需要每长12个字节,而不是8个,int需要6个字节而不是4个字节。通常看起来需要array_size * element_size * 1.5
编译- javac \com\som\package\xmlfun\\*java
与- java -Xmx151M -cp . com.some.package.xmlfun.Main