共用方式為


Object.JavaFinalize 方法

定義

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

[Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")]
protected virtual void JavaFinalize ();
[<Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")>]
abstract member JavaFinalize : unit -> unit
override this.JavaFinalize : unit -> unit
屬性

例外狀況

備註

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 子類別會 finalize 覆寫 方法來處置系統資源,或執行其他清除。

的一般合約 finalize 是,如果 Java™虛擬機已判斷該物件不再有任何方法可供尚未終止的任何線程存取,但因為其他物件或類別已準備好完成而採取的動作所採取動作。 finalize方法可以採取任何動作,包括讓這個物件再次提供給其他線程使用;不過,的一般用途finalize是在物件不可撤銷地捨棄之前執行清除動作。 例如,代表輸入/輸出連接之物件的 finalize 方法可能會執行明確的 I/O 交易,以在永久捨棄物件之前中斷連接。

類別 finalizeObject 方法不會執行任何特殊動作;它只會正常傳回。 的 Object 子類別可能會覆寫此定義。

Java 程式設計語言不保證哪個線程會針對任何指定的物件叫 finalize 用 方法。 不過,保證叫用完成的線程不會在叫用完成時保留任何用戶可見的同步處理鎖定。 如果 finalize 方法擲回未攔截的例外狀況,則會忽略例外狀況並結束該對象的最終處理。

finalize在為物件叫用 方法之後,在 Java 虛擬機再次判斷該物件不再有任何方法可供尚未終止的任何線程存取之前,不會採取任何進一步的動作,包括其他已準備好完成的對象或類別的可能動作, 此時可能會捨棄物件。

finalize針對任何指定的物件,Java 虛擬機絕不會多次叫用 方法。

方法擲回 finalize 的任何例外狀況都會使這個對象的最終化停止,但否則會忽略。

java.lang.Object.finalize()Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於