如何判斷一個Java對象是存是亡?
其實這里有兩種算法實現:引用計數器法和可達性算法。
引用計數器法:
給對象添加一個引用計數器,每當有一個地方引用它時,計數器就加1;當引用失效時,計數器就減1;任何時刻計數器為0的對象就是不在被使用的。
優點: 實現簡單,判定效率高,在大部分情況下都是一個不錯的算法。
缺點: 無法解決對象循環引用的問題。
可達性算法:
這個算法的思想是通過一系列的”GC roots“ 的對象作為根節點,從這些節點開始向下搜索,搜索走過的路徑稱為”引用鏈“,當一個對象到GC Roots沒有任何一個引用鏈相連,則證明這個對象是不可用的。
如果大家對于學習Java有任何問題(學習方法,學習效率,如何就業),可以隨時來咨詢我,(教程/解答/交流群/學習方法/就業信息)等, 歡迎一起分享資源。