本文較為詳細的分析了Java中對象的銷毀方法。分享給大家供大家參考。具體分析如下:
Java中的基本數據類型變量和對象的名稱引用變量如定義在方法中,都為局部變量。但對象本身不一定是局部生命周期。如函數外存在其他對該對象的引用變量,則該對象的生命周期延伸至該其他引用變量所在的塊。
如從被調用函數參數引用傳值或返回值到主調用函數所在的對象類型變量中,則該對象都仍存在(但被調用函數的該對象的引用變量生命周期結束,因此引用變量是局部變量),此時對象突破了局部變量的局部生命期。
Java對象銷毀
Java中垃圾收集器自動地定期掃描Java對象的動態內存,并將所有的引用對象加上標記,在對象運行結束后(無引用變量對該對象進行關聯),清除其標記,并將所有無標記的對象作為垃圾進行回收,釋放垃圾對象所占的內存空間。
對象運行結束后或生命周期結束時,將成為垃圾對象,但并不意味著就立即會被回收,僅當垃圾收集器空閑或內存不足時,才會回收他們。
Java中每個對象都擁有一個finalize()方法:
1
|
protected void finalize() throws Throwable{} |
垃圾回收器在回收對象時自動調用對象的finalize()方法來釋放系統資源。
finalize()函數原型:
protected void |
finalize()
Called by the garbage collector on an object when garbage
collection determines that there are no more references to the object. |