“new String()”也是不可变的吗?
我学习Java String已经有一段时间了。以下问题基于以下帖子
Java String 是 Java 中 String 的特殊
不可变性
-
不可变性:现在,通过不可变性,String类的设计使得公共池中的值可以在其他地方/变量中重用。如果 创建为
String
String a = "Hello World!";
但是,如果我创建字符串,例如String b = new String("Hello World!");
为什么这也是不可变的?(还是?由于这有一个专用的堆内存,我应该能够在不影响任何其他变量的情况下对其进行修改。那么,从设计上讲,有没有其他原因可以解释为什么作为一个整体被认为是不可变的呢?还是我上面的假设是错误的?String
-
我想问的第二件事是关于公共字符串池。如果我创建一个字符串对象作为
String c = "";
是否在池中创建了空条目?
这些已经有任何帖子了吗?如果是这样,有人可以分享链接吗?