【发布时间】:2021-08-13 07:23:02
【问题描述】:
IDE:IntelliJ、JDK 16.0.2
代码:
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
System.out.println("Free memory before gc: " + runtime.freeMemory() / (1024 * 1024) + " Mb");
runtime.gc();
System.out.println("Free memory after gc: " + runtime.freeMemory() / (1024 * 1024) + " Mb");
}
输出:
Free memory before gc: 251 Mb
Free memory after gc: 13 Mb
问题:为什么要调用垃圾收集“吃掉”所有内存?
【问题讨论】:
-
a bit related。基本上 G1GC 将内存释放回操作系统;但这种情况很少发生。