我(在某处)读到,当子类被垃圾收集时,不能保证调用父类的 finalize() ,这是否意味着大多数开发人员覆盖子类中的 finalize() 并调用 super.finalize()

最佳答案

对于父类,不会自动调用Finalize。因此,如果您覆盖finalize,则确保清理父类(super class)的正确方法是

protected void finalize() {
    try {
       // do subclass cleanup
    }
    finally {
       super.finalize();
    }
}

请参阅此引用文章http://www.ibm.com/developerworks/java/library/j-jtp06294/index.html

值得注意的是,终结器不是非常可预测的,并且您对它们是否/何时运行没有任何控制。在完成方法中,不应做任何关键的事情。通常,更好的做法是只对您的类进行显式清理。

关于java - 您是否在子类中调用super.finalize()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11379115/

10-10 11:52