JDK8之前:HashMap 由数组+链表组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的; JDK8之后:数组+链表/红黑树,并且链表长度大于8并且数组长度大于64才会尝试将链表转换为红黑树,目的是提高效率;