通过String类的实现源码可以获知,String类是final类,通过byte数组保存字符串。
查看subString、concat和replace方法,发现都不是在原字符串上进行操作,而是重新生成了一个新字符串对象,也就是操作完成后,最开始的字符串并没有被改变。记住:
“对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象“”
--字符串池
class文件中有一部分 来存储编译期间生成的 字面常量以及符号引用,这部分叫做class文件常量池,在运行期间对应着方法区的运行时常量池。