StringBuffer 遇到的问题------->谁看过源码给解释一下

图片说明

这就是主类型参数和对象参数传递的区别,主类型传递的是值,对象传递的是指向内存中实例对象的一个地址变量
而且这个变量有属于局部变量(出了该方法变量就失效了)
你如果在operation方法中把y打印出来,y的值就是AB

为什么b最后还是B而不是AB

 不难理解,因为你的operation方法的参数传入的是对象,而你在这个方法里面操作了对象x,对x的内容进行了append。
Java的引用传递的是对象,对象是堆内存共享的,你这里修改了对象的属性,当然会在main方法里面体现了。

我的观点和上面有一点不一样 你传入的都是地址 只要对相应的地址修改都会影响原来地址的值 可是后来做的是赋值,所以并没有影响b

小宝说的对,我比较赞同小宝的说法

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递

是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.