一、如何判断对象可以回收

1. 引用计数法
每引用一次,就计数一次,当某个对象的引用计数为0时进行回收。
弊端:循环引用的两个对象永远得不到回收。
在这里插入图片描述

2. 可达性分析算法
扫描堆中的对象,看能否沿着 GC Root 对象为起点的引用链找到该对象,找不到表示可以回收。

3. 四种引用

  • 强引用
  • 软引用
  • 弱引用
  • 虚引用
  • 终结器引用