一、String字符串类型的数据结构
因为String类中的字符数组为char类型的数组,并且是被final关键字修饰的,而被final关键字修饰的成员属性或是类无法修改是不可变的,因此只要创建一个String类型的对象,其中的字符内容就是不可变的
二、每次修改都会产生一个新的字符串
以 toUpperCase()方法为例:在源码中最后是通过new关键字返回了一个新的String字符串
String string = "Disper";
String ret = string.toUpperCase();
System.out.println("string ="+string.hashCode());
System.out.println("ret = "+ret.hashCode());
结果:
string =2047288815
ret = 2016751055
通过比较原字符串和修改之后的哈希值也可以看出String类型每次修改后的哈希值不同,是新产生了一个字符串的