在 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

相关文章