字符串的 Java 不变性,使用 "+="运算符

标签 java string immutability

plentyquestions关于 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/

相关文章:

javascript - 不可变地更新对象数组并管理长度缩减

javascript - 如何以不可变的方式更新数组

java - JComponent InputMap 神秘地被删除

java - 字符串不变性测试

java - PHP-Java 互操作 - Gearman 还是 PJB?

C双字符指针声明和初始化

string - Lua 模式在行尾时停止

c++ - 如何在 C++ 中将字符串作为模板类返回?

java - JAX-RS 异常映射器 : What about wrapped exceptions and default case?

java - 如何从字符串中删除重复字符