本文最后更新于60 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
以int举例,int是4个字节,也就是32位bit,可以表示2^32的空间,约为40亿,但一个长度为40亿的数组不现实,而且数组默认初始值为16,因此直接使用hashcode不现实,需要对其进行操作
右移16位也就是把高位数据移动到低16位,再与自己进行异或。进行异或操作能大幅度增加随机性,同时兼顾了高位和低位的特征。
以int举例,int是4个字节,也就是32位bit,可以表示2^32的空间,约为40亿,但一个长度为40亿的数组不现实,而且数组默认初始值为16,因此直接使用hashcode不现实,需要对其进行操作
右移16位也就是把高位数据移动到低16位,再与自己进行异或。进行异或操作能大幅度增加随机性,同时兼顾了高位和低位的特征。