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...
廣告