1. 程式人生 > >JVM垃圾回收算法

JVM垃圾回收算法

計數 一個 clas 失效 引用 pos 簡單 判斷 body

1.判斷對象是否已死的兩種方法

1.1 引用計數法

  給對象添加一個引用計數器,如果其他對象引用計數器加一,引用失效計數器減一,當計數器為0的時候,則對象就認為是死亡的狀態

  優點:實現簡單,效率高

  缺點:無法解決循環引用的問題,

1.2 可達性算法(目前jvm用的gc方法)

  通過GC roots 對象作為起始點,從節點向下搜索,當一個對象到GC roots沒有引用鏈相連,則判斷對象已死.

  在Java中,可作為GC roots 的對象包括下面幾種

  (1) 棧中直接引用的對象

  (2) 方法區中類靜態屬性引用的對象.

  (3) 方法區中常量引用的對象

  (4) 本地方法棧中JNI(Native方法)引用的對象

JVM垃圾回收算法