原創文章, 轉載請私信. 關注 tastejava 學習加思考, 仔細品味java之美
爲什麼要閱讀源碼
- 面試要考, 不管是什麼公司面試, 源碼相關知識點考察是少不了了, 例如ArrayList與LinkedList區別這樣的爛大街問題
- 開發要用, 肯定要很熟悉JDK常見api, 理解其內部實現和特點才能正確靈活的運用
怎麼閱讀源碼
經過一段時間的摸爬滾打, 我發現要想高效的閱讀源碼, 首先閱讀英文原始文檔的能力要強, 其次要熟練掌握所使用的IDE方法跳轉相關操作, 如實現類跳轉到接口, 接口跳轉到實現類, 方法跳轉到調用的地方, 直接跳轉到某一行等. 最後還需要善於利用搜索引擎, 有查閱資料的能力.
閱讀源碼面臨的問題
上面總結出來的是高效閱讀源碼需要具備的條件, 需要學會的方法. 然而在方法上能優化的空間就比較有限了, 閱讀源碼依舊面臨不少問題
- 比如由於JDK追求高效並且可靠, 所以裏面很多寫法含義是需要時間才能分析明白, 甚至需要查找一段時間資料才能解決某個問題.
- 又比如可能我們詞彙量是夠的, 但是由於語法原因依舊不能準確理解英文註釋含義, 大段的英文註釋確不知道哪是重點.
核心問題也就是好的方法能達到理解源碼的目的, 但是很難再優化節省時間, 提高效率
送給大家的禮物
這裏有一份開源項目, 是送給大家的禮物. 克隆一個倉庫, 經過少量的設置, 平時開發中想要了解源碼實現時, 點擊到JDK方法實現, 即可看到詳細的中文註釋, 再也不需要看到不懂的代碼時花費大量時間分析邏輯或者查詢資料. 項目地址如下:
項目基於openjdk1.8, 代碼範圍預計覆蓋掉java.utils以及java.lang包下的類, 目前從類的常見和重要程度逐步分析. 個人力量是有限的, 歡迎大家踊躍參與到項目中來, RRADME中詳細說明了參與方式, 歡迎大家PR, 讓我們一起成長, 一羣平凡的人也可以成就不平凡的事