当对象没有引用的时候会被自动回收嘛,
还有一种语法是直接new 一个对象出来,
像: new ArrayList<Integer>().add(1);
上面这种情况怎么是怎么判断回收不呢?

解决方案 »

  1.   

    丢失引用,jvm调用finalize方法。但是至于什么时候执行,什么时候这块空间被释放这就要看jvm了。
      

  2.   

    package org.test;
    import static net.mindview.util.Print.*;
    class Bowl
    {
    int i;
    //Bowl(){ print("Bowl default con"); }
    Bowl(int i){ this.i=i; }
    public void finalize()
    {
    print("回收对象"+i);
    }
    }
    public class Test 
    {
    public static void main(String[] args)
    {
    new Bowl(2);
    Bowl b1=new Bowl(1);
    System.gc();
    }
    }
    输出结果:回收对象2
      

  3.   

    你把print改为System.out.println,我引入了一个包中的方法