【JVM】如何判断对象是否可以被回收

引用计数法:

在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。

优点:实现简单,判定效率高;缺点:无法解决对象相互循环引用的问题,对象A中引用了对象B,对象B中引用对象A。

可达性分析:

通过一系列称为"GC Roots"的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为"引用链"(Reference Chain),如果某个对象到GC Roots间没有任何引用链相连,或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使用的。

相关推荐
weisian1513 天前
JVM--20-面试题6:如何判断对象可以被垃圾回收?
jvm·可达性算法
蚊子码农3 天前
每日一题--JVM线程分析与死锁排查
jvm
xuxie993 天前
NEXT 1 进程2
java·开发语言·jvm
weisian1513 天前
JVM--19-面试题5:说说JVM的类加载机制和双亲委派模型
jvm·双亲委派模型·jvm类加载机制
亓才孓3 天前
【反射机制】
java·javascript·jvm
Volunteer Technology3 天前
JVM之性能优化
jvm·python·性能优化
Andy Dennis3 天前
Java语法注意事项
java·开发语言·jvm
坚持的小马3 天前
JVM相关笔记-jps
jvm·笔记
昱宸星光3 天前
Xnio源码分析
java·jvm·spring
@insist1233 天前
软考-数据库系统工程师-计算机存储层次结构与性能优化核心知识点
大数据·jvm·数据库