1、HashMap 中的求 2 的幂次方算法
1.1 JDK1.8 中的实现
tableSizeFor 方法,当使用有参构造函数初始化 HashMap 时,会将初始化容量参数扩容为大于它的第一个 2 的幂次方数,以下便是 tableSizeFor 源代码:
static final int tableSizeFor(int cap) {
int n = cap - 1;
n |= n >>> 1;
n |= n >>> 2;
n |= n >>> 4;
n |= n >>> 8;
n |= n >>> 16;
return (n <