私が知っているように、 System.gc() メソッドを使用してガベージ コレクションを実行すると、ヒープから未使用および破棄されていないオブジェクトがすべて収集され、クリーンアップされます。したがって、 System.gc(); を実行すると JVM のメモリを増やす必要があります。しかし、以下のコードを実行すると、結果が混乱します。
Runtime rs = Runtime.getRuntime();
System.out.println("Free memory in JVM before Garbage Collection = " +
rs.freeMemory());
rs.gc();
System.out.println("Free memory in JVM after Garbage Collection = " +
rs.freeMemory());
出力は
Free memory in JVM before Garbage Collection = 12184624
Free memory in JVM after Garbage Collection = 12184360
前の値が後の値よりも大きいことを確認してください。
私が間違った概念を持っている場合は修正するか、なぜこれが起こるのか説明してください。
ありがとうございました。