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