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