首页 > TAG信息列表 > GCRoots
Java中GCRoots包括哪些
Java中GCRoots包括哪些 在垃圾回收过程中如何判断一个对象是否是垃圾,有两种算法。一种是引用记数法,一种是可达性分析法。 引用记数法是早期垃圾回收器中使用的算法,每一个对象维护一个该对象被引用的记数,每引用一次,记数加1,每减少引用1次,引用减1,当引用为0时,表示该对象不再被引用,可Java中如何判断对象存活
1.引用计数法 给对象添加一个计数器,如果被引用则计数器加一;如果引用释放,计数器减一。当计数器为零时,代表该对象没有被引用那就需要回收了。如果两个对象互相引用怎么办?比如A引用了B,B又引用了A,A.reference=B;B.reference=A,那就无法释放。因此该算法未被采用。 2.可达性分析 从GCRooGCRoots 对象
GC Roots 虚拟机栈(栈帧中的本地变量表)中引用的对象 方法区中的类静态属性引用的对象 方法区中的常量引用的对象 原生方法栈(Native Method Stack)中 JNI 中引用的对象 可达性分析算法 从GC Roots的对象开始向下搜索,如果一个对象到GC Roots没有任何引用链相连时,则说明此对象不可