有 plenty的 questions关于 Java 中的字符串不可变性,问题的作者实际上重新分配了引用。
但是有一个值得注意的情况,似乎没有重新分配字符串:
String s = "hello";
s += " world";
您将其视为对字符串的实际修改。在家试试。
我很确定这是某种语法糖,由编译器翻译成具有相同语义的东西:
String s = "hello";
s = s + " world";
有人可以证实这个事实吗?
最佳答案
错了。
x += y
只是 x = x + y
的简写。
它仍然是一个常规的赋值操作,它不会修改任何现有的实例。
关于字符串的 Java 不变性,使用 "+="运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13808651/