java 在极客头条看到一个帖子 有一个东西看的我迷迷糊糊 忘大神解释一下

为什么下面四个结果是那样的?
图片说明

 简单来说,string是只读的,StringBuilder不是,所以调用change第二个版本,虽然函数内的s2被修改,但是不会作用到形参s2上
好比
void foo(int x)
{
x = 1;
}

main里面
a = 3;
foo(a);
a还是3

一个把对象给他了,一个只是引用地址

了解引用传递就知道为什么了