Hashmap

hashmap计算hashcode时 ,为什么会右移16位

减少碰撞 让值分布的更加均匀
计算位置时,hssh值会和length-1进行&操作,在其长度范围内取hash值
因为hashmap的长度一般不会超过16位,所以hash值的前16位可能不参与位置的计算,
所以取高16位与低16位异或,取出高16位与低16位不同的地方,即各自的特征,进行位置的运算

你可能感兴趣的:(java,基础)