为什么 String 在 Java 中是不可变的?
在一次采访中,有人问我为什么String是不可变的。
我是这样回答的:
当我们在java中创建一个字符串时,将在字符串pool(hello)中创建一个对象,并且s1将指向hello。现在,如果我们再次这样做,则不会创建另一个对象,但s2将指向,因为JVM将首先检查字符串池中是否存在相同的对象。如果不存在,则只创建一个新,否则不会创建。
String s1="hello";
String s2="hello";
hello
现在,假设java允许字符串可变,那么如果我们将s1更改为s2值,那么java String也是不可变的。hello world
hello world
任何人都可以告诉我我的答案是对还是错?