实际上是:x=y和y=x只在operate中有效
但是append是真的改变了b的值(b.append(b))
因此operate中只是做了个append,实际上。
所以a的值仍然是“A”,而b的值变成了“BB”。

解决方案 »

  1.   

    好像这个时候,方法中的单纯的赋值语句不影响原来的值。
    但是变量的属性变更是起作用的,比如append,insert等等。
      

  2.   

    多谢 zoff(刀锋) 好像明白了一点点,好,加分!
      

  3.   

    其实你在每个语句后面都加上打印就看的很清楚了
    在op方法里面
    x=y;则 将y 的引用传给x
    x=x.append(y); 实际上等于y.append(y)
    y=x;然后再将这个引用传给y
    可以看到,整个过程中,对a,只是对引用x进行操作,而对b,则实实在在的改变了内存
    所以b发生了变化,而a没有
      

  4.   

    不好意思,dynku(随风来去.cn) 
    我已经结贴了,不能给你加分了