一、概述
我知道垃圾回收在Java中是自动化的。但是我知道,如果您调用System.gc()
代码,那么JVM可能会或可能不会决定此时执行垃圾回收。这究竟如何工作?JVM看到时会根据什么基础/参数确切地决定执行(或不执行)GC System.gc()
?
在这种情况下,有任何示例是个好主意吗?
二、详解
实际上,它通常决定进行垃圾回收。答案取决于许多因素,例如您正在运行的JVM,它处于哪种模式以及所使用的垃圾收集算法。
我不会在您的代码中依赖它。如果JVM即将抛出OutOfMemoryError,则调用System.gc()不会停止它,因为垃圾回收器将尽最大努力释放它,直到达到极限为止。我唯一看到它在实践中使用过的是在IDE中,它附加到用户可以单击的按钮上,但是即使在那里也没有用。
如若转载,请注明出处:https://www.javaidea.cn/article/8378.html