Model m = new Model(); 
Collection c<Model> = new ArrayList(); c.add(m); c=null; 这个m指向了NULL但是它会不会被回收呢 ?

解决方案 »

  1.   

    m并没有被指向null
    指向null的是c,所以c被回收了但是m不会
      

  2.   

    new出来的Model对象仍然有引用(reference)m指向它,不会被回收
    new出来的ArrayList对象的引用c指向null后,ArrayList对象不再可达到,可被回收
      

  3.   


    m和c是引用,回收是针对对象的,而不是针对引用的
    m的对象仍然有m这个引用指向他,所以不被回收;c的对象由于在c指向null后不再可达,被回收
      

  4.   

    m并没有被指向null 
    指向null的是c,所以c被回收了但是m不会