1. 程式人生 > >Object類finalize()

Object類finalize()

返回 例如 用戶 編程 object類 nbsp font 如果 ava

垃圾收集時由對象上的垃圾收集器調用
確定沒有對該對象的更多引用。
子類重寫{@code finalize}方法進行處理
系統資源或執行其他清理。
<P>
{@code finalize}的一般合同是它被調用
if和何時Java <font size =“ - 2”> <sup> TM </ sup> </ font>虛擬
機器已確定不再有任何
意味著任何擁有的線程都可以訪問此對象
尚未死亡,除非由於采取了行動
完成一些準備好的其他對象或類
最終確定。 {@code finalize}方法可以采取任何行動,包括
使這個對象再次可用於其他線程;通常的目的
然而,{@code finalize}是在之前執行清理操作
該對象不可撤銷地被丟棄。例如,finalize方法
對於表示輸入/輸出連接的對象可能執行的操作
顯式I / O事務以在對象之前斷開連接
永久丟棄。
<P>
類{@code Object}的{@code finalize}方法不執行
特別行動;它只是正常返回。子類
{@code Object}可能會覆蓋此定義。
<P>
Java編程語言不保證哪個線程會
為任何給定對象調用{@code finalize}方法。它是
但是,保證調用finalize的線程不會
在finalize結束時持有任何用戶可見的同步鎖
調用。如果finalize方法拋出未捕獲的異常,
忽略該異常並終止該對象的終止。
<P>
在為對象調用{@code finalize}方法之後,沒有
在Java虛擬機再次執行之前,將采取進一步操作
確定該對象不再具有任何手段
任何尚未死亡的線程都可以訪問,包括可能的線程
其他準備完成的對象或類的動作,
此時可以丟棄該對象。
<P>
Java永遠不會多次調用{@code finalize}方法
任何給定對象的虛擬機。
<P>
{@code finalize}方法引發的任何異常都會導致
要暫停此對象的最終確定,否則
忽略。
*
@throws Throwable這個方法引發的{@code Exception}

protected void finalize() throws Throwable { }

Object類finalize()