根类的 hashcode方法:是返回的变量地址;
public native int hashCode();
object的hashcode方法
而子类的hashcode方法:是重写了,用自己的算法返回一组值,所以可以理解为和跟类的hashcode不是一个体系
public static int hashCode(Object a[]) {
if (a == null)
return 0;
int result = 1;
for (Object element : a)
result = 31 * result + (element == null ? 0 : element.hashCode());
return result;
}
1.如果对象的equals方法被重写,那么对象的HashCode方法也尽量重写、
2.HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定对象的存储地址的(后半句说的用hashcode来代表对象就是在hash表中的位置)