想问一下包装类,String它不是对象吗?为什么操作起来不像list,StringBuilder呢种对象?对象不是引用传递吗?为什么main里的a永远不变?但是函数里的a是会变的,求解答

第一个:

img

img

第二个:

img

img

第三个:

img

img

第四个:

img

img

第五个String也不行:

img

img

第六个StringBuilder可以:

img

img

因为String对象的更改操作都会生成一个新的对象,String a,你执行a+"a"实际上生成了一个与a没有关系的新对象,而a还是之前那个a。
List和StringBuilder这种进行更改是会影响对象本身的,所以才会导致值有变化。