📌 PDF :大白话说Java面试题 --- 02-JVM篇
第13题:JVM采用什么算法判断一个对象是否需要被回收
📚 回答:
- 核心概念 :
JVM 使用可达性分析算法(Reachability Analysis)来判断一个对象是否可以被回收。
1. 可达性分析算法的作用
-
定义:
- 在垃圾回收前,JVM 需要确定哪些对象是存活的(可达的),哪些对象是垃圾(不可达的)。
- 可达性分析算法通过从一组根节点(GC Roots)出发,递归查找所有可达的对象,不能被搜索到的对象则视为垃圾对象,可以被回收。
💡 面试官视角:
-
面试官可能会问"为什么不用引用计数法?"答:引用计数法无法解决循环引用问题(如两个对象互相引用但没有其他引用指向它们),而可达性分析算法可以更好地处理这种情况。