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 檔。

此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

適用於