我知道Java中垃圾收集是自动的。但我明白如果你打电话System.gc()
在您的代码中,JVM 可能会也可能不会决定在此时执行垃圾收集。这具体是如何运作的?当 JVM 看到时,它到底根据什么基础/参数决定执行(或不执行)GCSystem.gc()
?
是否有任何示例在这种情况下最好将其放入代码中?
在实践中,它usually决定进行垃圾收集。答案因多种因素而异,例如您运行的 JVM、它所处的模式以及它使用的垃圾收集算法。
我不会在你的代码中依赖它。如果 JVM 将抛出 OutOfMemoryError,调用 System.gc() 不会阻止它,因为垃圾收集器将在达到这种极端情况之前尝试释放尽可能多的内存。我唯一一次看到它在实践中使用是在 IDE 中,它附加到用户可以单击的按钮上,但即使在那里它也不是很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)