java - 当调用 System.gc() 或 finalize() 方法时,内部(JVM)发生了什么?

标签 java garbage-collection jvm finalize

调用 System.gc() 或 finalize() 方法时内部 (JVM) 发生了什么?

这真的是收集垃圾还是降低性能?

最佳答案

当您调用 System.gc() 时究竟发生了什么依赖于 JVM。 JVM 将此调用视为一个建议,它可能是运行垃圾收集器的好时机,所以不要依赖它。

对象的 finalize()当 JVM 确定不再有对该对象的可访问引用时,垃圾收集器对该对象运行该方法。你不应该在你的代码中调用它。请记住,finalize() 不会在您的程序丢失最终引用时被调用,而是在垃圾收集器运行的 future 时间被调用,所以不要依赖它发生在某个时间特定时间点(或所有时间点)。

关于java - 当调用 System.gc() 或 finalize() 方法时,内部(JVM)发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892665/

相关文章:

garbage-collection - Neo4j cpu 卡在 GC 上

java - 将响应流从 gRPC 服务返回到 RESTful 客户端时出现问题

java - 如何隔离特定于平台的 JNA 绑定(bind)?

java - 如何在 Java 中处理分支计算?

Java CMS GC 行为

java - 转储文件中的特殊 java 线程

java - 我可以在应用程序引擎中托管已购买的域吗

c# - 锁对象内的垃圾收集

java - Java 中的 finalize 方法

java - 在这种情况下,JVM 如何处理动态调度?