我有以下与 Java 的 Finalize() 方法和垃圾收集相关的问题。
有没有办法可以强制执行finalize()方法?
JDK 弃用以下方法的原因是什么?Runtime.runFinalizersOnExit(true);
除了上面的问题之外,我正在阅读文章 http://javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html 。在此,请参阅第 5 点,作者说 Finalize() 在调用垃圾收集器之前被调用。那么这件事肯定会发生吗?我的意思是在执行垃圾收集器方法之前是否总是调用finalize()方法?
假设我的堆中有很多垃圾,但垃圾收集器没有执行。那么这难道不是 JVM 的不良行为或者缺陷吗?
由于没有发生垃圾回收,它如何降低我的应用程序的性能?
最佳答案
finalize
方法 may never actually get called ,因此任何肯定需要运行的关键清理代码都应该放在其他地方。您可能应该自己管理此操作 - 当您完成持有某些资源的对象时,请显式进行清理(例如,实现 close
方法)。
关于java - 有没有办法强制执行finalize()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373394/