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

引用计数法:

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

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

可达性分析:

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

相关推荐
Serene_Dream4 小时前
Java 垃圾收集器
java·jvm·面试·gc
weisian1515 小时前
JVM--6-深入JVM栈内存:方法调用的执行舞台
jvm·栈帧·栈内存
Serene_Dream5 小时前
Java 内存区域
java·jvm
star12585 小时前
数据分析与科学计算
jvm·数据库·python
2301_822382765 小时前
使用Python进行网络设备自动配置
jvm·数据库·python
m0_706653236 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
hgz07107 小时前
可达性分析算法
jvm·可达性算法
weisian1517 小时前
JVM--5-深入 JVM 方法区:类的元数据之家
jvm·元空间·方法区
橘橙黄又青7 小时前
JVM实践
jvm
团子的二进制世界7 小时前
JVM为什么能跨平台、原理是什么
jvm