在java中,垃圾回收不需要我們自己執(zhí)行,而是由系統(tǒng)自動(dòng)執(zhí)行。
這一點(diǎn)給了我們發(fā)開(kāi)發(fā)人員省了不少心,但是finalize()方法一直是個(gè)困惑。
虛擬機(jī)在執(zhí)行垃圾回收之前都會(huì)執(zhí)行對(duì)象的finalize(),那么finalize()到底有什么用呢?
其實(shí)finalize()主要是給其他調(diào)用而創(chuàng)建的空間在對(duì)象回收時(shí)頁(yè)同步回收而設(shè)置的。
比如,你調(diào)用了C語(yǔ)言,使用了mallow()開(kāi)辟了一段內(nèi)存空間。在你釋放java對(duì)象的時(shí)候,虛擬機(jī)只能釋放java對(duì)象占用的空間,而不能釋放C開(kāi)辟的內(nèi)存空間,所你你在釋放此對(duì)象之前要先回收你在C語(yǔ)言中開(kāi)辟的空間。
這各時(shí)候才用到finalize()方法。
平時(shí)的時(shí)候不要隨便使用finalize()方法。
以上理解是《java編程思想中的理論》,詳細(xì)深入的理解請(qǐng)參考此書 。
|----------------------------------------------------------------------------------------|
版權(quán)聲明 版權(quán)所有 @zhyiwww
引用請(qǐng)注明來(lái)源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|