String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 == str2);
System.out.println(str1.equals(str2));
System.out.println(str1.hashCode());
System.out.println(str2.hashCode());
代码如上,输出结果:
false
true
99162322
99162322
为什么具有相同的 hashCode
返回的是 false
呢
看书的时候不仔细,弄清楚了;
String
重写了hashCode
方法,其hashCode
值是由内容决定的,而不是地址决定的