説明 本文基於 jdk 8 編寫。 HashMap 的結構 圖中的數組是 table 屬性,hashMap 基礎的屬性。一個數組,用於承載 node,table 的每一個格被稱為桶。 node 是 hashMap 中基礎的 node 節點,用於存儲 key, value。 桶位置計算的公式是 (n - 1) hash,n 指 table 的長度,hash 指 key 的 hash 值。
先附一段對新生代中複製算法較好的理解: 首先得明白複製算法的思想: 將原有的內存空間劃分成兩塊,每次只使用其中一塊,在垃圾回收的時候,將正在使用的內存中的存活對象複製到另一塊內存區域中,然後清除正使用過的內存區域,交換兩個區域的角色,完成垃圾回收。 然後為什麼要在新生代中使用複製算法: 因為新生代gc比較頻繁、對象存活率低,用複製算法在回收時的效率會更高,也不會產生內存碎