java - System.gc()什么时候做某事?

标签 java garbage-collection

我知道垃圾收集在 Java 中是自动进行的。但我知道,如果您在代码中调用 System.gc(),JVM 可能会也可能不会决定在此时执行垃圾收集。这具体是如何运作的?当 JVM 看到 System.gc() 时,它到底根据什么基础/参数决定执行(或不执行)GC?

是否有任何示例可以说明将其放入代码中是个好主意?

最佳答案

实际上,它通常决定进行垃圾收集。答案会因多种因素而异,例如您运行的 JVM、它所处的模式以及它使用的垃圾收集算法。

我不会在你的代码中依赖它。如果 JVM 将抛出 OutOfMemoryError,调用 System.gc() 不会阻止它,因为垃圾收集器将在达到这种极端情况之前尝试释放尽可能多的内存。我唯一一次看到它在实践中使用是在 IDE 中,它被附加到用户可以单击的按钮上,但即使在那里它也不是很有用。

关于java - System.gc()什么时候做某事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26533183/

相关文章:

Java 日志 ==> JTextArea

java - 为什么我提高内存时更频繁地获得 GC?

java - 为什么 GC 时间在长时间运行的高容量 Java 应用程序上稳步增加?

json - 关于 CPU 缓存或 GC 或任何其他不确定的问题

java - Android Studio:为什么addRule()在RelativeLayout.LayoutParams中不起作用?

java - 如何将动态参数传递给testNG中的dataProvider方法

Java JRebel 与 MyRebel 许可证插件

java - 使用 Apache Commons VFS API 的特定文件监视器

java - 类似于 yourkit 的工具?

java - ArrayList 中的 remove()