考虑遵循1行计划:
public static void main(String[] args) throws Exception {
// 134217728 * 2 bytes / 1024 / 1024 = 256M
char[] array = new char[134217728];
}
Run Code Online (Sandbox Code Playgroud)
JVM需要多少内存来分配这个256M字符数组?
原来答案是-Xmx384m.现在让我们尝试512M字符数组......
// 268435456 * 2 bytes / 1024 / 1024 = 512M
char[] array = new char[268435456];
Run Code Online (Sandbox Code Playgroud)
答案似乎是-Xmx769m.
在运行一些大小为m的字符数组的例子.jvm需要至少1.5m兆字节的内存来分配阵列.这似乎很多,谁能解释这里发生了什么?