日期:2014-05-20  浏览次数:20650 次

gc
void Func()
{
  A a = new A();
  B b = new B();
  a.RefToB = b;
  b.RefToA = a;
}
a和b会不会被gc回收呢?

------解决方案--------------------
这要看GC算法的具体实现,如果是纯粹的引用计数法就没法GC
------解决方案--------------------
如果使用引用计数法的话,循环引用问题是没有办法解决的。
但是jvm并不是仅仅使用这个方法进行垃圾回收,还有一些其他的技术,比如Tracing Collectors
自己可以搜一写jvm进行垃圾回收的策略