Java 基础 知识体系 Questions 1.8与1.7的区别 | 1.7 | 1.8 底层结构 | 数组+链表 | 数组+链表/红黑树 插入方式 | 头插法 | 尾插法 计算hash值 | 4次位运算+5次异或运算 | 1次位运算+1次异或运算 扩容、插入 | 先扩容再插入 | 先插入再扩容 扩容后位置计算 | 重新hash | 原位置或原位置+旧容量 (1) 扩容因子默认为什么是0.75 如果扩容因子过高,空间利用率提高但是哈希冲突概率增加;如果扩容因子过低,会造成频繁扩容,哈希冲突概率降低,但是空间利用率变低。选择0.75是基于泊松分布,是时间和空间成本上寻求的一种折中选择 (2)为什么链表长度为8要转化为红黑树 首先和 碰撞次数的泊松分布有关,主要是为了寻找一种时间和空间的平衡。