3.2节
1.引用计数算法
算法思路:给对象添加引用计数器,有引用时加1,引用失效时减1,计数器为0,对象不可用
实现简单,判定效率高,但主流Java虚拟机没有选用,主要原因是它很难解决对象之间相互循环引用问题
2.可达性分析算法
基本思路:将"GC Roots"对象作为起始点,从起始点开始向下搜索,搜索经过的路径称为引用链(ReferenceChain),没有与任何引用链相连的对象不可用
在Java语言中可作为“GC Roots”的对象有:
虚拟机栈(栈帧中的本地变量表)中引用的对象
方法区中类静态属性引用的对象
方法区中常量引用的对象
本地方法栈中JNI(即一般说的Native方法)引用的对象