首页 > 编程知识 正文

root是干什么用的,gc root根节点

时间:2023-05-06 21:10:23 阅读:130592 作者:1992

一、什么是垃圾

内存中不再使用的区域是垃圾

二、要进行垃圾回收,如何判断一个对象是否可以被回收?

引用计数法很难解决对象间循环引用的问题

枚举根节点的可达性分析通过列举" GC Roots "对象进行可达性分析,以一系列名为" GC Roots "的对象为起点,从" GC Roots "对象开始向下检索,参照形成的路径如果对象没有对“GC根”(GC root )对象的参照,且没有形成参照链,则对象将等待GC回收。

三、哪些对象可以作为 GC Roots 的对象:

1、虚拟机堆栈(Java堆栈帧中的局部变量区域,也称为局部变量表) )中引用的对象。

2、方法区域中类静态属性引用的对象。

3、方法区域内的常量引用的对象。

4 .本地方法堆栈中的JNI (朴素方法)引用的对象。

publicclassgcrootdemo {私有字节[ ] bytearray=new byte [ 100 * 1024 * 1024 ]; 私密静态gcroot演示gc2; 私有身份验证代码3=newgcrootdemo (; publicstaticvoidm1({ gcrootdemogc1=newgcrootdemo ); System.gc (; System.out.println; } publicstaticvoidmain (字符串[ ] args ) { m1 ); }说明:

gc1:是虚拟机堆栈中的局部变量

gc2:是方法区域中类的静态变量

gc3:是方法区域中的常量

均为GC Roots 的对象。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。