字符串不变性

Kra*_*ken 2 java string immutability

我被告知java中的字符串无法更改.以下代码如何?

name="name";
name=name.replace('a', 'i');
Run Code Online (Sandbox Code Playgroud)

它不会改变name字符串吗?另外,replace()的实现在哪里; 相比于(); 等于(); 提供?我只是在这里使用这些功能,但它们实际上在哪里实现?

Sky*_*sey 6

String.replace()返回一个新的String.

"name"是对String对象的引用,因此可以将其重新分配以指向name.replace(),但它将指向一个新对象.

这是Stringjavadoc,您可以在其中找到所有方法的功能.