相信讀者也看過了不少講解 HashMap 源碼的文章了,筆者認為,一切脫離源碼去講原理的都是泛泛而談。一些所謂的原理大都是閱讀源碼之后的個人概括,這些概括參差不齊,再加上沒有閱讀源碼,讀者們是很難有切身體會的。正因如此,筆者逐行分析了 HashMap 的源碼后,開啟了本場寫作。

筆者在閱讀 HashMap 源碼的時候,曾對每個內部屬性,每個內部方法和方法調用邏輯做了簡要注釋,但在整理成文的時候,還是遇到了略微的困難。對于一些內部屬性的解釋,需要結合它在一些方法的使用中發揮的作用來綜合說明,筆者打算按照從淺到深的順序,先帶讀者熟悉HashMap的宏觀設計思想,再通讀一遍源碼,然后講解源碼的設計細節。要讓讀者邊看文字邊對照源碼進行學習,形成自己的領悟和體會,避免造成筆者一人的泛泛而談。

無論自己的領悟是深是淺,終歸是自己的,無論別人的領悟多么高深,那也是別人的。希望每個讀者都能有自己的收獲和體會。

作者:薛勤

主頁:http://github.com/yueshutong