我想知道如何确定java分配的内存。我有一个内存要求有限的程序。当我分配一个特定大小的数组时,我注意到 JVM 分配的内存是这个大小的两倍:
例如:在我分配一个数组之前:
runtime.totalMemory() 15 MB
runtime.freeMemory(): 14 MB
此行之后: char [] xxx = new char[4 * 1024 * 1024];
runtime.totalMemory() 15 MB
runtime.freeMemory(): 6 MB
因此,可用内存量从 14 MB 下降到 6 MB。即使我的阵列只有 4 MB。我尝试过不同的东西数组,它总是一样的。为什么java分配数组大小的两倍?
谢谢