0x61c88647斐波那契数列
Posted 泡^泡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0x61c88647斐波那契数列相关的知识,希望对你有一定的参考价值。
创建ThreadLocal实例时这个值都会累加 0x61c88647, 目的在上面的注释中已经写的很清楚了:为了让哈希码能均匀的分布在2的N次方的数组里.ThreadLocalMap 中 Entry[] table 的大小必须是2的N次方(len = 2^N),那 len-1 的二进制表示就是低位连续的N个1也就是 threadLocalHashCode 的低N位 这样就能均匀的产生均匀的分布。
package com;
public class ThreadLocalHashDemo
private static final int HASH_INCREMENT = 0x61c88647;
public static void main(String[] args)
magicHash(16);
magicHash(32);
private static void magicHash(int capacity)
for (int i = 0;i < capacity;i++)
int hashcode = i * HASH_INCREMENT + HASH_INCREMENT;
System.out.print((hashcode & (capacity - 1))+" ");
System.out.println("");
生成不重复的数
以上是关于0x61c88647斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章