把一个object=null就会关闭这个object对内存地址的引用,假如我List里面放的是对象,当调用clear()方法后,list内部所有对象的引用是否都被关闭了呢?clear()方法是不是对list内部的所有对象逐个进行=null的操作呢?

解决方案 »

  1.   

    ArrayList l=new ArrayList();
    Object o=new Object();
    l.add(o);
    l.add(new Object());//different from o
    l.clear();

    Assert.assertNotNull(o);
      

  2.   

    ArrayList l=new ArrayList();
            Object o=new Object();
            l.add(o);
            l.add(new Object());//different from o
            l.clear();
            
            Assert.assertNotNull(o);
      

  3.   

    ArrayList l=new ArrayList();
      Object o=new Object();
      l.add(o);
      l.add(new Object());//different from o
      l.clear();
       
      Assert.assertNotNull(o)
      

  4.   

    1.6 public void clear() {
    modCount++; // Let gc do its work
    for (int i = 0; i < size; i++)
        elementData[i] = null; size = 0;
        }
      

  5.   

    5楼说对了,lz可以试试把它的对象都清空,把list = null
      

  6.   

    ArrayList l=new ArrayList();
    Object o=new Object();
    l.add(o);
    l.add(new Object());//different from o
    l.clear();
    l=null;//o still reachable
    Assert.assertNotNull(o);