<span style="font-size: inherit;">hash(key)</span><br>
public V put(K key, V value) {<br> return putVal(hash(key), key, value, false, true);<br>}
对key进行hash获取对应的hash值,key、value传入到putVal()方法里面去,将key-value对儿根据其hash值找到对应的数组位置
static final int hash(Object key) {<br> int h;<br> return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);<br>}<br>
通过hashCode()方法,直接获取hash值。<br>
把32位的二进制的hash值,所有的bit往右侧右移了16位<br>
将他的高16位和低16位进行一个异或运算,同时保留高16位和低16位的特征,减少hash冲突。