当我运行以下程序(运行时"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 个字节?
此外,当我类似地创建 long 数组时,它似乎每长需要 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