JuiceApp1e
Results
1
comments of
JuiceApp1e
因为理想情况下 String 是不可变的, hashCode 按理说是不会发生改变的,因此在设计的时候是这样设计的:在新建 String 对象的时候就会计算一次 hashCode 的值,并保存在 String 类的成员变量 hash 中,当你调用 hashCode() 方法时,仅仅是返回了 hash 值,而不是重新计算一次该字符串对应的 hashCode。 > 虽然我们可以使用反射跳过安全检查,设置字符数组的值,改变值后,打印出的字符串确实是改变了,但是我们通过对象的hashCode方法查看hash值发现,hashCode并没有随着字符数组被修改而改变.根据hash值的计算规则我们知道,如果一个对象的被修改了,那么它的hash值肯定也会跟着变化,我理解的String不可变指的是这个.虽然我们可以通过反射来改变字符数组的值而在显示上改变字符串的值,实际上该字符串的hash值并没有改变.在实际中不建议这样做. > > ```java > public static void main(String [] args)...