finalize() 方法會被呼叫多少次?在 Java 中,誰呼叫 finalize() 方法?


finalize() 方法屬於 Object 類。在關閉物件之前,垃圾收集器會確保不再有對該物件的引用,然後呼叫其上的 finalize() 方法。

因此,一旦你重寫了其中的 finalize() 方法,你就可以執行所有清理活動,例如關閉資料庫連線、網路連線等。

protected void finalize throws Throwable{}

它在程式執行期間只會被呼叫一次。

以下是關於 finalize 方法的一些顯著要點。

  • 由於此方法屬於 Object 類(它是 Java 中所有類的超類),因此你可以從任何類中重寫它。

  • 這是一個空方法,但是你可以透過編寫程式碼來執行所需的清理活動來重寫它。

  • 建議在 finalize() 方法中編寫的清理程式碼(關閉連線等)周圍使用 try-catch 塊。

  • 允許顯式呼叫 finalize() 方法。它就像任何其他方法一樣被執行。

  • 當你顯式呼叫 finalize() 方法時,如果垃圾收集器當前正在執行它,則會引發未檢查的異常。

  • 同樣地,當你顯式呼叫 finalize() 方法,並且在執行過程中垃圾收集器嘗試呼叫它時,也會引發未檢查的異常。

示例

 線上演示

public class FinalizeExample{
   public void finalize(){
      System.out.println("finalize method is executed...");
   }
   public static void main(String args[]){
      FinalizeExample obj = new FinalizeExample();
      obj.finalize();
      System.gc();
   }
}

輸出

finalize method is executed...

更新於:2020年6月29日

938 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告