java 垃圾回收機制

java中垃圾收集器用來監視java程序的運行,當對象不再使用時,就自動釋放對象所使用的內存。java使用一系列指針來跟蹤對象的各個引用

(並不是直接跟蹤每個對象)並用一個對象表將這些指針映射爲對象的引用。這樣,java的垃圾收集器能夠以獨立的線程在後臺運行,並依次檢查

每個對象。通過更改對象表項,垃圾收集器可以標記對象、移除對象、移動對象或檢查對象。

垃圾收集器是自動運行的,一般情況下,無法顯示的請求垃圾收集器。程序運行時,垃圾收集器會時不時的檢查對象的各個引用,並回收無引用

對象佔用的內存。調用System類的靜態gc()方法可以運行垃圾收集器,但這樣並不能保證立即回收指定對象。

java虛擬機中的自動垃圾回收機並不能阻止程序運行溢出內存,假設一個程序保持創建一個引用時,其他的任何引用都沒有被拋棄,這樣也會造

成內存耗盡的結果。雖然垃圾回收機能在後臺獨立運行,但是塔並不是一個獨立的平臺,它具有平臺依賴性。

判斷一塊內存是否符合垃圾收集器的標準有:

1)給對象賦予了空值null,以後再沒有調用過。

2)給對象賦予了新值,即重新分配了內存空間。

對於頻繁申請內存和釋放內存的操作,建議還是自己控制一下爲好,此時或許System.gc()並不一定適合,最好使用finalize強制執行或者寫自己的finalize方法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章