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

  • 2019 年 10 月 3 日
  • 筆記

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

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

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

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

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

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

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

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

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

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


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

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

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

01. 多角度,對比學習。

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

02. 制定源碼學習計劃。

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

03. 多調試,跟蹤源碼。

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

04. 多交流,請教高人。

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

05. 多記錄,分享。

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

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

————————————————– 漂亮的分割線 ———————————————————————————-

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

原創不易,轉載請註明作者和原文鏈接。

喜歡的朋友們,可以微信關注或點個喜歡。