一、谈谈你对GCRoots的理解
1.什么是垃圾?
不再被使用到的空间
2.要进行垃圾回收,如何判断一个对象是否可以被回收?
- 引用计数法
- 枚举根节点做可达性分析(根搜索路径)
3.引用计数法
每当有一个地方引用它,计数器值加1,
很难解决对象之间相互循环引用的问题。
4.枚举根节点做可达性分析(根搜索路径)
”GC Roots”为起始点,能被遍历到的(可到达的)对象就被判定为存活;没有被遍历到的就自然被判定为死亡。
5.Java中可以作为GC Roots的对象
- 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。(举例:方法在栈里面执行,方法中有局部变量引用了其它对象)
- 方法区中的类静态属性引用的对象。(举例:static修饰的类变量在方法区中,它引用的对象就是)
- 方法区中常量引用的对象。(举例:static fina