本帖最后由 andymu077 于 2009-11-30 14:45:44 编辑

解决方案 »

  1.   

    a=b; 这个意思是将 a指向对象b所在的同一地址,对getXXX返回的对象没有任何影响。
    其实你可以将Java里面的对象全部看成是指针,a = b 这样改变的是a指向地址。
      

  2.   

    引用类型的值就是地址!(学过c的话应该很好理解)
    a=b这一步是把b对象的地址复制个a这个引用类型,最后的结果是a,b都指向同一对象
      

  3.   


    谢谢,回答。的确是,但是如果返回的是个list呢?如下边这样:
    List a=XXXXX.getXXXX();
    a.add(Object b);这时候a的指向地址也发生变化了吗?
      

  4.   

    a.add只是调用a对象的方法,a的指向没有发生变化只有在等号左边的赋值语句下才是改变了对象的地址,即a = b;
      

  5.   


    那这样的话a是否还会等于XXXXX.getXXXX(); 里边的值呢?
      

  6.   

    http://topic.csdn.net/u/20100225/14/eb694840-b00d-4b3b-b8aa-dd5fcea8ce45.html