如何判斷對象是否死亡?

有兩種方法
1、引用計數算法(不是jvm使用的方法):
概念:給對象添加一個計數器,每當有一個地方引用該對象的時候,計數器的值就加1,當引用失效的時候,計數器的值減1,任何時候都沒有引用的時候,計數器的值爲0;也就是對象不能在被使用了。
該算法的優點:實現簡單、判斷效率高,大部分情況是一個好的算法。
致命的缺點:難以解決對象之間相互循環引用的問題。(這也是Java虛擬機不使用它的原因)。
2、可達性分析的方法(JVM使用的方法):
從一序列的稱爲“GC ROOT”的對象作爲起始點,沒經過的路徑成爲引用鏈,當對象到GC root沒有存在引用鏈,證明該對象不可用啦,(其實這種方法只是判斷死的第一個步驟,後面還有一個自救的,如果自救不成功纔是真正的死亡)

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