2014-02-20 34 views
-8

由于字符串是不可变的,我们怎样才能将改变字符串为例你怎么说字符串是不可变的,因为你可以改变它?

String s1="Hello"; 
    String s2="Manas"; 

现在我正在

s1=s1+s3; 

它将打印“你好玛纳斯”。所以String s1会改变。

那么你怎么能说,字符串是不可变的?

+1

不可变!='最后'。查阅条款以获取更多信息 –

+0

[可能的重复](http://stackoverflow.com/q/1552301/1883647)。你的意思是's1 = s1 + s2;'? – ajp15243

+0

一个字符串是不可变的。 's1'和's2'不是String对象,它们是*对String对象的引用,这些引用可以被改变。 –

回答

6

您不会更改"Hello"的内容,而是将变量s1的值更改为完全引用不同的字符串对象。

不变性与改变变量的值无关 - 如果你想防止这种变化,你可以使问题变量最终。

+1

您并未更改参考值 - 您将*变量*的值更改为不同的参考值。 (就像'int x = 0; x = 5;'不会改变0表示的意思,它会将'x'的值改为5)。 –

+0

@JonSkeet对不起,对我来说糟糕的措辞。现在修复。 – berry120

+0

它不像(int x = 0; x = 5)它就像(final int x = 0; x = 5;)那么如何改变final变量。 – manu198

相关问题