HashMap 扩容机制?
参考答案
结论:HashMap默认初始容量16,负载因子0.75,元素数超容量*负载因子时触发扩容,新容量为旧容量2倍。原理:resize()方法创建新数组,重新分配节点;JDK1.8使用(e.hash & oldCap) == 0判断节点位置,为0留原索引,非0移至原索引+旧容量,形成高低位链表避免全量rehash;1.7及之前采用头插法转移链表,多线程下可能形成环形链表导致死循环。扩容耗时O(n),建议预估数据量指定初始容量。
题目整理自公开面经,答案由校招宝自研生成,仅供参考