1)给int变量result赋予某个非零值常量,例如17。
2)为对象内每个有意义的域f(即每个可以做equals()操作的域)计算出一个散列码c:
域类型 计算
boolean c=(f?0:1)
.
.
.
.
.
Object,其equals()调用这个域的equals() c=f.hashCode()
数组 对每个元素应用上述规则
3)合并计算得到的散列码
4)返回result
5)检查hashCode()最后生成的结果,确保相同的对象有相同的散列码。
所以,除了Object必须是相同的,其他都是只要值相同就相同。