覆蓋 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

更新時間: 02-Jul-2020

1K+ 瀏覽量

啟動你的 職業

透過完成課程獲取認證

開始
廣告
© . All rights reserved.