在java中,类的传递都是按引用,也就是地址传递,所以会有你的得到的结果。
但是普通类型是值传的。在类中,String是个特殊的。因为在传递的时候,实际上是传了一个副本,所以看起来也想是值传。

解决方案 »

  1.   

    AB B
    变量a\b\x\y中存储的是StringBuffer变量的引用而不是一个StringBuffer对象。根据非基本类型参数传递为引用传递的规则,operate接收的参数只是StringBuffer对象的引用.因此可以理解为x、a都是指向同一个对象;b、y也是指向同一个StringBuffer对象,所以x.append(y)将导致x和a同指的StringBuffer对象改变(增加"B");而y=x只是让变量y改变指向为和x相同的StringBuffer对象,而y原来所指的对象并不会发生任何改变。
      

  2.   

    同意楼上的,答案为 AB B
      

  3.   

    明白了,谢谢 xiao_yuer(小鱼儿) ,也谢谢其他几位。结账。