我学习Java字符串已经有一段时间了。以下问题是基于以下职位
不可变性:现在,按照不可变性,字符串类的设计使得公共池中的值可以在其他地方/变量中重用。但是,如果String是作为String a = "Hello World!";创建的,那么如果我创建了像String b = new String("Hello World!");这样的字符串,为什么这个字符串也是不可变的呢?(或者说是?)因为这有一个专用的堆内存,所以我应该能够在不影响任何其他变量的情况下修改它。那么,从设计上看,String作为一个整体被认为是不可变的,还有其他原因吗?还是我上面的假设