引用计数法:当给对象添加一个引用计数器,每当有一个地方引用这个对象时计数器值就+1;引用失效时,计数器值就-1;任何时刻计数器为0的对象就是不可能在被使用。
优点:引用计数收集器可以很快地执行,交织在程序运行中。 缺点:无法检测出循环引用。
例如: MyObject object1 = new MyObject(); MyObject object2 = new MyObject();
object1.object = object2;
object2.object = object1;
object1 = null;
object2 = null;
虽然后面两句话将object1和object2赋值为null,也就是说object1和object2指向的对象已经不可能再被访问,但是由于它们互相引用对方,导致它们的引用计数器都不为0,那么垃圾收集器就永远不会回收它们。