1<<30 hashMap 中使用位移运算的意义

static final int MAXIMUM_CAPACITY = 1 << 30;

计算过程已1<<30为例,首先把1转为二进制数字 0000 0000 0000 0000 0000 0000 0000 0001

然后将上面的二进制数字向左移动30位后面补0得到 

01000000 00000000 00000000 00000000(共计32位,是int的最大长度,第一位标示的是符号)
即0x4000 0000

java语言要2的n次方咋写呀

Math.pow(2,n)。

这里就很明显了,位移运算要比Math效率高

为什么不直接写结果?

太长了吧。。。

原文地址:https://www.cnblogs.com/hellowzd/p/9723245.html