1.为什么要判断对象是否存活?判断方式有哪些?
jvm堆中,只有判断对象死亡才会进行回收.(除了大对象),一般有两种方式,引用计数法和引用链法(可达性分析法).
2.引用计数法是什么?
给 Java
对象添加一个引用计数器,每当有一个地方引用它时,计数器 +1;引用失效则 -1;
3.引用链法(可达性分析法)是什么?
当一个对象到 GC Roots
没有任何引用链相连时,则判断该对象不可达.
1.可达性分析
2.第一次标记 & 筛选
3.第二次标记 & 筛选
可达性分析,不可达不足以判断对象是死亡状态,还需要经历第一次标记和第二次标记最终才能确定是否是死亡状态.