GC时根可达算法那些是根节点gcroot

可达性算法是垃圾收集器判断Java对象是否存活的关键,它通过GCRoots作为起点进行遍历。GCRoots包括虚拟机栈、方法区的类静态属性和常量引用、本地方法栈中的JNI引用。如果对象无法从这些根节点达到,则认为对象可回收。这个过程对于有效管理堆内存至关重要。

现在主流的jdk都采用了gcroot算法,那么哪些可以作为 GC Roots;


jvm中判断对象是否清理的一种方法是可达性算法.

可达性算法就是采用GC Roots 为根节点, 采用树状结构,向下搜索.如果对象直接到达GC Roots ,中间没有任何中间节点.则判断对象可回收. 而堆区是GC的重点区域,所以堆区不能作为GC roots

因为可达性算法的特性,所以可以在gc接触不到的地方作为GC Roots

1.虚拟机栈(栈帧中的本地变量表)中引用的对象;

2.方法区中的类静态属性引用的对象;

3.方法区中常量引用的对象;

4.本地方法栈中JNI(即一般说的Native方法)中引用的对象
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值