Java堆中幾乎存放着Java世界中全部的對象實例,垃圾收集器在對堆進行回收前,第一件事情就是要肯定這些對象有哪些仍是存活着,哪些已經死去。java
1:引用計數法:最主要由於該算法沒法解決對象之間的相互循環引用的問題,Java語言沒有選用引用計數算,這裏很少作介紹算法
2:根搜索算法(GC Roots),Java實際上使用的是GC Roots算法。在Java語言裏,可做爲GC Roots的對象包括下面幾種:對象
那麼怎麼判斷一個「無用的類」呢?,須要同時知足下面三個條件才能算是「無用的類」虛擬機