前言

见过一个问题说,如果java里的对象出现了循环引用,对象会不会被回收。
结论是:
因为 java 的对象存活算法,使用的是可达性分析算法,而不是引用计算法,java中任何一款GC都没有使用过引用计算法。

示例:

1
2
3
4
5
6
7
8
9
10
11
public static  void main(String[] args) throws IOException {
A a = new A();
B b = new B();

a.bb = b;
b.aa = a;

//a = null;
//b = null;
System.in.read();
}