为什么b最终的输出不受函数影响

img

    x.append(y);
    y=x;

答案是
AB,B

为什么stringbuffer类型的b的输出没改变

operate方法内 局部变量y的地址开始和b一样,但是后面和x也就是a地址一样,断开了b的引用,方法结束后,y回收。所以b内容没改变

因为 StringBuilder 类型的变量 b 调用 append 方法向字符串中添加新的字符串,这会改变字符串的内容但不会改变 b 本身。

因为“改变形参不改变实参”,不管是c语言、java、python,都遵循同样的规则
x.append是在调用x的成员函数,而不是改变x
y=x对y重新赋值了,改变了y的地址