Java HashMap最大容量
我正在浏览Java HashMap最大容量,java,hashmap,bit-manipulation,Java,Hashmap,Bit Manipulation,我正在浏览java.util.HashMap类代码,发现MAXIMUM_CAPACITY的定义如下: static final int MAXIMUM_CAPACITY = 1 << 30; static final int MAXIMUM_CAPACITY=1首先,它解释了如何选择值-2^30(是2的幂,约为最大int值的一半)比0x40000000或1073741824更有意义。 第二,编译器无论如何都会计算值。1编码器不想记住十六进制数字是如何工作的?除此之外,我找不到任何其
java.util.HashMap
类代码,发现MAXIMUM_CAPACITY
的定义如下:
static final int MAXIMUM_CAPACITY = 1 << 30;
static final int MAXIMUM_CAPACITY=1首先,它解释了如何选择值-2^30(是2的幂,约为最大int值的一半)比0x40000000或1073741824更有意义。
第二,编译器无论如何都会计算值。1编码器不想记住十六进制数字是如何工作的?除此之外,我找不到任何其他原因。除了这比一些随机的十进制/十六进制值更容易阅读之外,我看不出这样做的原因。从视觉上看,更容易分辨出1