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

引用计数法:

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

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

可达性分析:

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

相关推荐
好多1719 小时前
《JVM遇到GC的常见解决办法》
jvm
boonya20 小时前
Java垃圾回收机制理论算法及使用
jvm·算法·gc·垃圾收集器·理论
码熔burning20 小时前
从 new 到 GC:一个Java对象的内存分配之旅
java·开发语言·jvm
书院门前细致的苹果1 天前
JVM 全面详解:深入理解 Java 的核心运行机制
java·jvm
稻草人想看远方1 天前
GC垃圾回收
java·开发语言·jvm
我真的是大笨蛋1 天前
从源码和设计模式深挖AQS(AbstractQueuedSynchronizer)
java·jvm·设计模式
我真的是大笨蛋2 天前
G1 垃圾收集器深入解析
java·jvm·笔记·缓存
好多172 天前
《JVM如何排查OOM》
开发语言·jvm·python
getdu2 天前
JVM第一部分
jvm