class Snoochy{
    Boochy booch;
    public Snoochy(){booch=new Boochy(this);}
}
class Boochy{
    Snoochy snooch;
    public Boochy(Snoochy s){snooch=s;}
    public static void main(String[] args){
        Snoochy snoog=new Snoochy();
        snoog=null;
//more code here
    }

运行到more code here的时候有几个对象符合垃圾回收?

解决方案 »

  1.   

    用不着的就符合被回收
    这里 new Snoochy()、new Boochy(this)这两个创建的对象貌似都访问不到了吧!
      

  2.   

    JAVA 垃圾回收是JAVA虚拟机自动调用回收。。
      

  3.   

    循环引用,如果没有配置GC参数的话,两个都不会被回收,因为缺省的是引用计数,而引用计数在处理循环引用的时候有bug。
    理论上,应该都被回收到。
      

  4.   

    2。   SCJP的题是吧~