use*_*771 1 java memory-management
我想知道如何确定java分配的内存.我有一个内存要求有限的程序.当我分配一个具有一定大小的数组时,我注意到JVM分配内存的倍数是这个大小的两倍:
例如:在我分配数组之前:
runtime.totalMemory() 15 MB
runtime.freeMemory(): 14 MB
Run Code Online (Sandbox Code Playgroud)
在这一行之后:char [] xxx = new char [4*1024*1024];
runtime.totalMemory() 15 MB
runtime.freeMemory(): 6 MB
Run Code Online (Sandbox Code Playgroud)
因此,可用内存量从14 MB下降到6 MB.即使我的阵列只有4 MB.我尝试过不同的数组,它总是一样的.为什么java分配数组大小的两倍?
谢谢
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |