一,GC 检测垃圾的方法
检测垃圾的方法?
1.引用计数法:每一个对象都有一个引用计数器,当对象被其他对象所引用的时候,引用计数器就会➕1,不再被引用时则减一
引用计数器的
优点,判断标识效率,回收快,
缺点:
单独的字段存储计数器,额外空间开销。
每次更新计数器伴随加法和减法操作,时间开销大。
存在循环引用问题
2.可达性分析算法:通过判断对象的引用链是否可达来决定对象是否可以被回收,以GC ROOT作为起点,向下搜索。
java中GC ROOT包括以下几种
(1)虚拟机栈帧中的引用变量
(2)方法区中静态属性引用变量
(3)本地方法中Native引用变量
(4)虚拟机 内部的引用对象
(5)sychronized持有的锁