JVM内存分析系列(六)对象存活判断

对象存活常用2种算法

引用计数算法
    给对象中添加一个引用计数器,每当有一个地方引用他时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象,就是不可能在被引用的。
    但是它很难解决对象之间互相循环引用的问题。


根搜索算法
    通过一系列名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所用走过的路径成为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明次对象是不可用的。
在JAVA里,GC Roots对象包括下面几种:
虚拟机栈中的引用对象
方法区中的类静态属性引用对象
方法区中常量引用的对象
本地方法栈中JNI的引用对象

猜你喜欢

转载自phl.iteye.com/blog/1995578