GC时根可达算法那些是根节点gcroot
现在主流的jdk都采用了gcroot算法,那么哪些可以作为 GC Roots;jvm中判断对象是否清理的一种方法是可达性算法.可达性算法就是采用GC Roots 为根节点, 采用树状结构,向下搜索.如果对象直接到达GC Roots ,中间没有任何中间节点.则判断对象可回收. 而堆区是GC的重点区域,所以堆区不能作为GC roots因为可达性算法的特性,所以可以在gc接触不到的地方作为GC Root
·
现在主流的jdk都采用了gcroot算法,那么哪些可以作为 GC Roots;
jvm中判断对象是否清理的一种方法是可达性算法.
可达性算法就是采用GC Roots 为根节点, 采用树状结构,向下搜索.如果对象直接到达GC Roots ,中间没有任何中间节点.则判断对象可回收. 而堆区是GC的重点区域,所以堆区不能作为GC roots
因为可达性算法的特性,所以可以在gc接触不到的地方作为GC Roots
1.虚拟机栈(栈帧中的本地变量表)中引用的对象;
2.方法区中的类静态属性引用的对象;
3.方法区中常量引用的对象;
4.本地方法栈中JNI(即一般说的Native方法)中引用的对象
更多推荐
已为社区贡献6条内容
所有评论(0)