覆盖 Java 中的 finalize() 方法的目的是什么?
finalize() 方法是 Object 类中的 预定义 方法,并且是 受保护的。可以覆盖 finalize() 方法的目的,让对象在垃圾回收对象之前包括清理代码或释放系统资源。如果覆盖了 finalize() 方法,则我们有责任显式调用 finalize() 方法。JVM 或任何给定对象 只能调用一次 finalize() 方法。
语法
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
广告