java中的垃圾回收

相對於c語言的這種由開發人員顯式的分配內存、釋放內存,如果處理不當往往會造成內存泄露的問題。java的垃圾回收機制監視java程序的運行,自動釋放不再使用的對象的內存。java使用軟指針(指向對象引用的指針)來跟蹤對象的所有引用。並使用一個對象表將軟指針映射爲對象的引用。垃圾收集器以單獨的線程在後臺運行,通過軟指針依次檢查每個對象。

垃圾收集器會不定時的檢查對象的各個引用,如果一個對象沒有任何的引用指向它,那個它可以被回收。

我們可以主動調用靜態的gc()方法來運行垃圾收集器,但是並不能保證這樣就可以立即回收指定的對象。

因此我們不應該試圖去假設垃圾回收發生的時間,這是未知的。

一個對象所佔用的內存符合垃圾回收的標準是,沒有任何引用指向該對象。

Object a=new Object();
Object b=a;
a=null;
b=null;
如上面的對象,它開始有兩個引用a和b指向它,當最後沒有引用指向它時(a=null,b=null),它便符合垃圾回收標準。

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