gc怎么确定要回收哪些对象

Java 通过可达性分析算法来判断一个对象是否还存活。
image

通过一组名为 “GC Roots” 的根对象,进行递归扫描,无法从根对象到达的对象就是“垃圾”,可以被回收。
这也是 G1、CMS 等主流垃圾收集器使用的主要算法。

什么是引用计数法?
每个对象有一个引用计数器,记录引用它的次数。当计数器为零时,对象可以被回收。

引用计数法无法解决循环引用的问题。例如,两个对象互相引用,但不再被其他对象引用,它们的引用计数都不为零,因此不会被回收。

posted @ 2025-04-23 12:55  kuki'  阅读(17)  评论(0)    收藏  举报