【发布时间】:2011-03-24 19:26:50
【问题描述】:
String s = ...;
s = s.substring(1);
这可能吗?我以为你不能在 Java 中更改 String 对象。
【问题讨论】:
-
如果只有
s.substring(1)会更改s中的字符串,那么您将是正确的。但是您正在为s分配一个新字符串。 -
您只是在更改引用,而不是原始字符串本身。一个次要的风格点 - 创建一个新的、描述性命名的局部变量通常比重复使用这样的变量更好。
-
不要将对象与引用混淆。对象可能是可变的或不可变的。引用可能是
final或不是。引用final不会使对象不可变。不可变对象可以通过引用来引用,而引用不必是final。 -
Brandon 你应该先了解什么是引用,什么是可变性。
标签: java string immutability