java中modify用法是怎样引用的,这里为什么没有改变s1的值呢

2025-04-28 13:54:35
推荐回答(1个)
回答1:

  1. String对象是不可变的,因此在你进行字符串的拼接的时候,实际上生成的是一个新的String对象存储了这个值.

  2. 这里还牵扯到一个值传递的问题,也就是你将S1传入modify方法的时候,实际上传递的是一个引用的copy。

  3. 你后面的s+"好吃"生成了一个新的String对象,你使这个拷贝的引用指向了这个新的对象,原对象仍然指向“苹果”。所以,你可以试着将s return回去,并且再讲s赋值给s1,这样就可以达到改变s1值的目的。