关于System.identityHashCode(obj) 与 obj.hashcode()如果在object类这一层面保证相同
但是 很多情况都是类继承object,重写hashcode()
String file1 = "abc"; 8 String file2 = "abc"; 9 String file3 = "abcdef"; 10 11 12 int hc1 = file1.hashCode(); 13 System.out.println(hc1); 14 int hc2 = file2.hashCode(); 15 System.out.println(hc2); 16 int hc3 = file3.hashCode(); 17 System.out.println(hc3); 18 19 int ihc1 = System.identityHashCode(file1); 20 System.out.println(ihc1); 21 int ihc2 = System.identityHashCode(file2); 22 System.out.println(ihc2); 23 int ihc3 = System.identityHashCode(file3); 24 System.out.println(ihc3);
参考http://www.cnblogs.com/danne823/archive/2011/11/29/2267658.html一个例子
hashcode() 与 System.identityHashCode() 生成的数字并不相等
原因在于String类重写了hashode() 它的值根据字符串序列返回值
而object根据对象判断返回值