在 Java 中重写 finalize() 方法的目的是什么?
javaobject oriented programmingprogramming更新于 2024/7/26 2:47:00
finalize() 方法是 Object 类中的 预定义 方法,并且是 protected。可以重写 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