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

Posted hellowzd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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效率高

为什么不直接写结果?

太长了吧。。。


以上是关于1<<30 hashMap 中使用位移运算的意义的主要内容,如果未能解决你的问题,请参考以下文章

HashMap的Put方法源码

为啥 long int 数据类型的左位移 << 位移超过 31?

Java 集合 - HashMap

HashMap源码解析

Java 8 HashMap

源码分析:HashMap