Javaによって割り当てられたメモリをどのように確認できるのか疑問に思っています。メモリ要件が制限されたプログラムがあります。特定のサイズの配列を割り当てると、JVM がこのサイズの 2 倍のメモリを割り当てることに気付きました。
例: 配列を割り当てる前に:
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は2倍の配列サイズを割り当てるのですか?
ありがとう