HashMap会对他的Key做调用Hash()进行hash运算,这个和HashCode不同,
他让Key的HashCode值的高16位也参与路由运算,使它的值变得更加散列,减小hash碰撞
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
h = key.hashCode()) ^ (h >>> 16)
1001 1101 0010 1101 1000 0000 1100 1001
^
0000 0000 0000 0000 1001 1101 0010 1101
=
1001 1101 0010 1101 1001 1101 1110 1101