java – System.gc()什么时候做什么

我知道垃圾回收在Java中是自动的。但我的理解,如果你在你的代码中编写System.gc(),Java虚拟机可能或可能不会决定在运行时做垃圾收集在那一点。这如何精确地工作?在什么基础/参数完全是VM决定做(或不做)一个GC,当它看到一个System.gc()?有没有例子在这种情况下,这是一个好主意,在代码中?
在实践中,它通常决定做垃圾收集。答案取决于很多因素,比如你正在运行的JVM,它的模式,以及它使用的垃圾收集算法。

我不会依赖它在你的代码。如果JVM要抛出OutOfMemoryError,调用System.gc()将不会停止它,因为垃圾回收器将尝试尽可能多的空间,直到它达到极端。我看到它在实践中使用的唯一的时间是在IDEs,它附加到一个用户可以点击的按钮,但即使有没有非常有用的。

http://stackoverflow.com/questions/66540/when-does-system-gc-do-anything

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – System.gc()什么时候做什么