据我所知,当我使用 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
看到前值大于后值。
如果我的概念有误,请纠正我或向我解释为什么会发生这种情况。
谢谢你。