在Java中重写finalize()方法的目的是什么?
的最终化()方法是一个预先定义的方法中的对象 类,它是受保护的。可以覆盖finalize()方法的目的,以使对象包括 清除代码 或处置可以在对象被垃圾回收之前完成的系统资源。如果我们要覆盖 finalize() 方法,那么我们有责任明确地调用finalize()方法。的最终化()方法可仅一次调用 由JVM或任何给定对象。
语法
protected void finalize() throws Throwable
示例
public class FinalizeMethodTest { protected void finalize() throws Throwable { try { System.out.println("Calling finalize() method of FinalizeMethodTest class"); } catch(Throwable th) { throw th; } finally { System.out.println("Calling finalize() method of Object class"); super.finalize(); } } public static void main(String[] args) throws Throwable { FinalizeMethodTest test = new FinalizeMethodTest(); String str = "finalize() method in Java"; str = null; System.out.println(str); test.finalize(); } }
输出结果
null Calling finalize() method of FinalizeMethodTest class Calling finalize() method of Object class