hashMap的初始化的长度,
这里使用的策略是循环查出一个大于initialCapacity的2的次方的数,例如 initialCapacity的值是10,那么大于10的数是2的4次方,也就是16
capacity的值被赋予了16,那么实际上table数组的长度是16,之所以采用这样的策略来构建Hash表的长度,是因为2的次方运算对于计算机来说是有相当的效率。
如果数据是10w的话,每条数据50bytes,内存占用也就是5M,并且你更在乎查询速度;
所以
Map map = new HashMap(2^18,0.5);
容量设为2^18=262144,在保证查询复杂度为常数的前提下,负载因子0.5的话, 这个map里面最多可以存贮262144/2个元素,可以满足需求
查询复杂度为常数(O(1)):就是大部分一个桶装一个元素;要达到这个目标,就要保证 容量*负载因子>=元素个数