Java筆記整理——對象(下)

對象的銷燬

會被Java虛擬機視爲垃圾的情況如下:1)對象引用超過其作用範圍,這個對象將唄視爲垃圾;2)將對象賦值爲null
Java的垃圾回收機制,只能回收那些由new操作符創建的對象,如果那些對象不是通過new操作符在內存中獲取一塊內存區域,這種對象不能被垃圾回收機制所識別,所以在Java中提供了一個finalize()方法。這個方法是Object類的方法,它被聲明爲protected,用戶可以在自己的類中定義這個方法。如果用戶在類中定義了finalize()方法,在垃圾回收時會首先調用該方法,在下一次垃圾回收動作發生時,才能真正回收被對象佔用的內存。
說明:垃圾回收或finalize()方法不保證一定會發生,如Java虛擬機內存損耗殆盡時,它是不會執行垃圾回收的。
由於垃圾回收不受人爲控制,具體執行時間也不確定,所以finalize()方法也就無法執行,爲此Java提供了System.gc()方法強制啓動垃圾回收器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章