1. 程式人生 > >閱讀原始碼,從ArrayList開始

閱讀原始碼,從ArrayList開始

## 前言 為啥要閱讀原始碼?一句話,為了寫出更好的程式。 一方面,只有瞭解了程式碼的執行過程,我們才能更好的使用別人提供的工具和框架,寫出高效的程式。另一方面,一些經典的程式碼背後蘊藏的思想和技巧很值得學習,通過閱讀原始碼,有助於提升自己的能力。當然,功利的講,面試都喜歡問原始碼,閱讀原始碼也有助於提升通過面試的概率。 結合今天的主題,一個很簡單的問題,在剛學習集合時,我們都使用過如下程式碼,但是下面幾行程式碼有區別嗎? ```java List list1 = new ArrayList(); List list2 = new ArrayList(0); List list4 = new ArrayList(10); ``` 有人可能會說,沒指定初始值就按預設值,指定了初始值就按指定的值構造一個數組。真的是這樣嗎?如果你對上面這個問題有疑惑,就說明你該看看原始碼了。 **學習程式設計的過程千萬不要人云亦云,一定要親自看看。** 如何閱讀原始碼,每個人的方式不同,這裡僅以自己習慣的方式來說。以今天的主題為例,ArrayList是幹嘛的?怎麼用?這就延伸到一條路線,先看類名及其繼承體系——它是幹嘛的,再看建構函式——如何造一個物件,當然,建構函式會用到一些變數,所以在此之前我們需要先了解下用到的常量值和變數值,最後,我們需要了解常用的方法以及它們是如何實現的。 對於閱讀大多數類基本都是按照:類名——>變數——>建構函式——>常用方法。 本文只會選取有代表性的一些內容,不會講到每一行程式碼。 ## 類簽名 好像沒有類簽名這個說法,這裡是對照函式簽名來說的,簡單說就是一個類的類名以及它實現了哪些介面,繼承了哪些類,以及一些泛型要求。 ```java public class A