如何在不引发编译错误的情况下更改不变的字符串值。

时间:2019-01-01 13:28:47

标签: java string immutability

我正在重新分配String变量的值。由于String是不可变的,因此如何在没有错误的情况下重新分配此赋值。

1 个答案:

答案 0 :(得分:2)

如果您的意思是,您正在这样做:

String s = "one";
s = "two";

...并想知道它为什么起作用,这是因为字符串是不可变的,而变量不是。您可以更新变量以指向其他字符串。您不能更改它指向的字符串以使其具有不同的字符。¹


¹(实际上,您可以通过查找底层字符数组并对其进行更改来反映一些JDK实现。但是从理论上讲,从理论上讲,您不能这样做。)