HashMap工作原理问题求解
铁衣 2015-02-02 10:50:16 最近我在研究Map集合的工作原理,以便做些优化。
首先看的是HashMap。
写一行初始化HashMap的代码:(debug模式)
Map<String, String> map = new HashMap<String, String>(3, 0.75f);
map.put("a","第1个元素");
我分别在HashMap的构造方法、put方法里加了断点。
执行结果居然是先进入put方法,执行了好几次后,才进入构造方法。。。
而且进入put方法时,阀值显示的是12。
我设置的初始化容量是3,阀值应该是3 * 0.75才对。
put方法被执行了大概十几次,然后才进入构造方法。
构造方法还没执行,对象实例都还没创建,怎么能直接执行put方法呢?
为什么会这样,谁知道吗?