OpenJDK的重述机制
2022-09-02 21:37:29
在搜索HashMap实现后,在 http://www.docjar.com/html/api/java/util/HashMap.java.html 上找到此代码。
264 static int hash(int h) {
265 // This function ensures that hashCodes that differ only by
266 // constant multiples at each bit position have a bounded
267 // number of collisions (approximately 8 at default load factor).
268 h ^= (h >>> 20) ^ (h >>> 12);
269 return h ^ (h >>> 7) ^ (h >>> 4);
270 }
有人能对此有所了解吗?注释告诉我们为什么这个代码在这里,但我想了解这如何改善一个糟糕的哈希值,以及它如何保证位置具有有限的冲突次数。这些神奇的数字是什么意思?