JDK1.8原始碼分析01之學習建議(可以延伸其他原始碼學習)

方子龍發表於2019-08-06

序言:目前有個計劃就是準備看一下原始碼,來提升自己的技術實力。同時現在好多面試官都喜歡問原始碼,問你是否讀過JDK原始碼等等?
針對如何閱讀原始碼,也請教了我的老師。下面就先來看看老師的回答,也許會有幫助呢。

我很尊敬的一位老師,他姓唐,算是我入門程式設計的啟蒙老師,有10多年的C/C++開發經驗,我有幸跟著老師的C++/C課程,自學完,而且還學了資料結構。他的講課很有風格,幽默風趣,有條有理,深入淺出。

不過後來,我決定走Java這條不歸路。

我向老師請教了一個問題:關於如何閱讀原始碼的問題?不乏味,思路清晰。就像他的課程一樣,基本上很少會有疲倦,枯燥的感覺。

唐老師,回答道:讀原始碼是要建立在你的基礎經驗足夠的情況下。否則很容易看不懂

我繼續又問:那對於剛剛想嘗試去讀原始碼的同學來說,有沒有一些建議呢?我嘗試著讀了一些,但感覺很無厘頭。

唐老師,回答道: 讀原始碼是要讀和你水平相匹配的。好多人好高騖遠,簡單的,能讀懂的不屑, 想讀的,又讀不懂,高不成低不就。我的建議是從教學型專案讀起。

小插曲:有位朋友說,原始碼寫的就一定比我寫的好嗎? 哈哈,這回答倒也是重新整理我的認知。

另外一位朋友有舉例說: 如果讀redis原始碼, 我會先看一本講Redis原理的書,然後再看原始碼。

以上就是我這次請教的過程,總結一下:先懂原理,知道一個全域性框架,再結合教學型專案或自己寫些小案例,再深入原始碼。


知識在於積累,學習需要耐力。學習就像挖金礦,或許一開始毫無頭緒,但轉個角度、換換工具,時間久了總會找到一個縫隙。成功就是你比別人多走了一段路,或許恰恰是那麼一小步。

有人抱怨: 閱讀原始碼太枯燥、乏味了,看到原始碼就頭暈,無法學下去了。你肯定選擇了一條充滿荊棘的路。選對方法,你會發現這裡是一條充滿鳥語花香和歡聲笑語的幽徑。

我也整理了最近學習原始碼的一個大致方法,至少這是我實踐的一套方法,大家也可以慢慢整理出適合自己的一套方法。

01. 多角度,對比學習。

除了自己去閱讀原始碼之外,比如學習某個類的時候,可以專門結合一些優質的部落格針對性的對比學習,並查漏補缺。

02. 制定原始碼學習計劃。

大多數人其實對原始碼的整體框架沒有太多瞭解,只知道我要學習原始碼,但卻無從下手。那麼,制定一個可行性的原始碼學習計劃,對你後面的學習原始碼會有一個指導性的作用。我在找原始碼的閱讀方法時,偶遇一篇 講JDK閱讀原始碼順序,給了我一個學習原始碼的方向, 也正是我需要的。我後面也會專門分享出來的。

03. 多除錯,跟蹤原始碼。

原始碼閱讀,我可以說必須要debug。如果你的大腦夠強大,自帶編譯執行,不需要idea輔助。如果沒有,那還是老老實實地把原始碼匯入,自己debug,看一下執行時,程式碼的邏輯走向是怎麼樣的。

04. 多交流,請教高人。

交流可以驗證和加固自己的知識。只有好處,沒有壞處。對於不會的,理解不透徹,也可以向大lao請教,但前提得先自己Google解決一下。

05. 多記錄,分享。
JDK1.8原始碼分析01之學習建議(可以延伸其他原始碼學習)

我偶爾會有一種錯覺,我在學習某項東西的時候,看著一些寫得好的部落格,這暫且叫碎片化學習,看了也就過了,隔三差五就忘了,又繼續回到我的增刪改查。然後自己寫的時候,寫不出那種效果,總擔心重複別人的輪子。

只要不是全部複製+貼上, 加上自己的體會和感覺,再寫出來的,那就是你的,獨一無二的一份筆記和心得。

-------------------------------------------------- 漂亮的分割線 ----------------------------------------------------------------------------------

如若有好的學習方法,可以留言一起交流學習。

原創不易,轉載請註明作者和原文連結。

喜歡的朋友們,可以微信關注或點個喜歡。
JDK1.8原始碼分析01之學習建議(可以延伸其他原始碼學習)

相關文章