既然我们可以在Java中连接字符串,为什么我们仍然将字符串称为immutable?

时间:2016-08-31 21:02:59

标签: java string immutability

在我意识到我们可以在java中连接字符串之前,我从未质疑字符串是不可变的这一事实。例如:

String character = "ha";
String otherString = "Alo";
otherString=otherString+character;
System.out.println(otherString);

这将有效。所以我们修改了名为" otherString"的字符串。我不明白字符串不可变的含义究竟是什么意思?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

似乎正在修改字符串,但实际上正在生成一个新字符串。来自来源(http://docs.oracle.com/javase/tutorial/java/data/strings.html):

  

注意: String类是不可变的,因此一旦创建,就无法更改String对象。 String类有许多方法,其中一些将在下面讨论,它们似乎可以修改字符串。 由于字符串是不可变的,这些方法实际上做的是创建并返回一个包含操作结果的新字符串。