JDk1.7 http://brokendreams.iteye.com/blog/2253956

1.8 https://www.cnblogs.com/d-homme/p/9387948.html

为了返回一个介于0和max之间的索引,我们对mod操作使用了一个便宜的近似值,这也可以纠正由于非2次幂剩余(参见{@link java.util.Random#nextInt})造成的偏差。哈希码的位用"nbits”(两个表格大小的上限功率)(在一个表格中查找,打包成三个整数)掩盖。如果太大,则在将散列旋转n位后重试,同时强制新的最高位为0,这保证了最终的终止(尽管具有非随机偏置)。对于所有表大小,这要求平均少于2次尝试,并且在应用于大小小于32的所有可能的哈希码时,与完全一致的时隙概率之间的最大差异为2%。