有兩種方法
1、引用計數算法(不是jvm使用的方法):
概念:給對象添加一個計數器,每當有一個地方引用該對象的時候,計數器的值就加1,當引用失效的時候,計數器的值減1,任何時候都沒有引用的時候,計數器的值爲0;也就是對象不能在被使用了。
該算法的優點:實現簡單、判斷效率高,大部分情況是一個好的算法。
致命的缺點:難以解決對象之間相互循環引用的問題。(這也是Java虛擬機不使用它的原因)。
2、可達性分析的方法(JVM使用的方法):
從一序列的稱爲“GC ROOT”的對象作爲起始點,沒經過的路徑成爲引用鏈,當對象到GC root沒有存在引用鏈,證明該對象不可用啦,(其實這種方法只是判斷死的第一個步驟,後面還有一個自救的,如果自救不成功纔是真正的死亡)
如何判斷對象是否死亡?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
JVM類加載機制入門
踏雪江南
2020-07-08 12:23:41
Java 四種引用類型,強引用、軟引用、弱引用、虛引用
雲棲號資訊小哥
2020-08-04 14:40:48
你說你熟悉JVM?那你知道Java對象是如何創建、存儲和訪問的嗎?
雲棲號資訊小哥
2020-07-21 14:49:52
JVM之自定義類加載器入門
踏雪江南
2020-07-08 12:23:41
jvm雙親委派機制之打破雙親委派機制
踏雪江南
2020-07-08 12:23:41
JVM內存N個問題的最全解析
推薦閱讀:爲了阿里巴巴的P7offer,我籌備了半年,四面之後終於成功拿下 面試阿里(P8)竟被MySQL難倒,奮發圖強二次面試斬獲阿里offer 爲面阿里P8,我肝
mrchaochao
2020-07-08 10:00:46
面試,JVM總掛?阿里架構大牛:爭氣點,“路”都給你指出來了
mrchaochao
2020-07-08 10:00:46
問題解決:遇到tomcat的假死問題,如何排查問題
ldx2
2020-07-08 09:08:50
【Java基礎】 JVM、JRE、JDK三者關係
赤澳魚蛋
2020-07-08 07:08:47
簡要了解JVM的內存劃分
E_Mlls
2020-07-08 03:37:19