摘要: 當一個對象實例不被強引用strongly reachable時,GC的某次運行就有可能掃描到該對象。這時GC會檢查該對象是否softreference reachable,如果是,則盡可能放它一馬,一笑而過,但如果放過去就會引起out of memory error,則就要處理該對象。處理過程首先要檢查是否實現了finalize方法的對象,如果是則標記finalizable,并導致Finalizer系統線程(setDaemon(true),Thread.MAX_PRIORITY - 2)在后續巡檢中對此對象調用finalize方法。執行完finalize方法后如果在此后某次的GC運行中再次被發現softreference reachable,則此時導致clear softreference,并釋放內存,最后歸到softreference-queue中。 閱讀全文
posted @ 2008-11-18 14:50 英雄 閱讀(653) | 評論 (0) | 編輯 收藏