摘要:唐老師,回答道讀源碼是要建立在你的基礎經驗足夠的情況下。除了自己去閱讀源碼之外,比如學習某個類的時候,可以專門結合一些優質的博客針對性的對比學習,并查漏補缺。制定源碼學習計劃。多調試,跟蹤源碼。如若有好的學習方法,可以留言一起交流學習。
序言:目前看一看源碼,來提升自己的技術實力。同時現在好多面試官都喜歡問源碼,問你是否讀過JDK源碼等等?
針對如何閱讀源碼,也請教了我的老師。下面就先來看看老師的回答,也許會有幫助呢。
我很尊敬的一位老師,他姓唐,算是我入門編程的啟蒙老師,有10多年的C/C++開發經驗,我有幸跟著老師的C++/C課程,自學完,而且還學了數據結構。他的講課很有風格,幽默風趣,有條有理,深入淺出。
不過后來,我決定走Java這條不歸路。
我向老師請教了一個問題:關于如何閱讀源碼的問題?不乏味,思路清晰。就像他的課程一樣,基本上很少會有疲倦,枯燥的感覺。
唐老師,回答道:讀源碼是要建立在你的基礎經驗足夠的情況下。否則很容易看不懂
我繼續又問:那對于剛剛想嘗試去讀源碼的同學來說,有沒有一些建議呢?我嘗試著讀了一些,但感覺很無厘頭。
唐老師,回答道: 讀源碼是要讀和你水平相匹配的。好多人好高騖遠,簡單的,能讀懂的不屑, 想讀的,又讀不懂,高不成低不就。我的建議是從教學型項目讀起。
小插曲:有位朋友說,源碼寫的就一定比我寫的好嗎? 哈哈,這回答倒也是刷新我的認知。
另外一位朋友有舉例說: 如果讀redis源碼, 我會先看一本講Redis原理的書,然后再看源碼。
以上就是我這次請教的過程,總結一下:先懂原理,知道一個全局框架,再結合教學型項目或自己寫些小案例,再深入源碼。
知識在于積累,學習需要耐力。學習就像挖金礦,或許一開始毫無頭緒,但轉個角度、換換工具,時間久了總會找到一個縫隙。成功就是你比別人多走了一段路,或許恰恰是那么一小步。
有人抱怨: 閱讀源碼太枯燥、乏味了,看到源碼就頭暈,無法學下去了。你肯定選擇了一條充滿荊棘的路。選對方法,你會發現這里是一條充滿鳥語花香和歡聲笑語的幽徑。
我也整理了最近學習源碼的一個大致方法,至少這是我實踐的一套方法,大家也可以慢慢整理出適合自己的一套方法。
01. 多角度,對比學習。
除了自己去閱讀源碼之外,比如學習某個類的時候,可以專門結合一些優質的博客針對性的對比學習,并查漏補缺。
02. 制定源碼學習計劃。
大多數人其實對源碼的整體框架沒有太多了解,只知道我要學習源碼,但卻無從下手。那么,制定一個可行性的源碼學習計劃,對你后面的學習源碼會有一個指導性的作用。我在找源碼的閱讀方法時,偶遇一篇 講JDK閱讀源碼順序,給了我一個學習源碼的方向, 也正是我需要的。我后面也會專門分享出來的。
03. 多調試,跟蹤源碼。
源碼閱讀,我可以說必須要debug。如果你的大腦夠強大,自帶編譯運行,不需要idea輔助。如果沒有,那還是老老實實地把源碼導入,自己debug,看一下運行時,代碼的邏輯走向是怎么樣的。
04. 多交流,請教高人。
交流可以驗證和加固自己的知識。只有好處,沒有壞處。對于不會的,理解不透徹,也可以向大lao請教,但前提得先自己Google解決一下。
05. 多記錄,分享。
我偶爾會有一種錯覺,我在學習某項東西的時候,看著一些寫得好的博客,這暫且叫碎片化學習,看了也就過了,隔三差五就忘了,又繼續回到我的增刪改查。然后自己寫的時候,寫不出那種效果,總擔心重復別人的輪子。
只要不是全部復制+粘貼, 加上自己的體會和感覺,再寫出來的,那就是你的,獨一無二的一份筆記和心得。
我的分享暫且就到這里吧。
如若有好的學習方法,可以留言一起交流學習。
原創不易,轉載請注明作者和原文鏈接。
喜歡的朋友們,可以微信關注或點個喜歡。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75856.html
摘要:線程掛起,線程繼續走,還會被繼續使用方法,而這時用的是線程設置的值了,而這就是引發問題的根源,出現時間不對,線程掛死等等。建議為每個線程創建單獨的格式實例。其中工作隊列使用的是,源碼頭部的注釋中有說明截取的部分。 閱讀本文大概需要 3.2 分鐘。 前言 日常開發中,我們經常需要使用時間相關類,想必大家對SimpleDateFormat并不陌生。主要是用它進行時間的格式化輸出和解析,...
摘要:本文是作者自己對中線程的狀態線程間協作相關使用的理解與總結,不對之處,望指出,共勉。當中的的數目而不是已占用的位置數大于集合番一文通版集合番一文通版垃圾回收機制講得很透徹,深入淺出。 一小時搞明白自定義注解 Annotation(注解)就是 Java 提供了一種元程序中的元素關聯任何信息和著任何元數據(metadata)的途徑和方法。Annotion(注解) 是一個接口,程序可以通過...
摘要:值得位數有的次方,如果直接拿散列值作為下標訪問主數組的話,只要算法比較均勻,一般是很難出現碰撞的。但是內存裝不下這么大的數組,所以計算數組下標就采取了一種折中的辦法,就是將得到的散列值與數組長度做一個與操作。 hashMap簡單介紹 hashMap是面試中的高頻考點,或許日常工作中我們只需把hashMap給new出來,調用put和get方法就完了。但是hashMap給我們提供了一個絕佳...
閱讀 711·2021-11-16 11:44
閱讀 3541·2019-08-26 12:13
閱讀 3236·2019-08-26 10:46
閱讀 2352·2019-08-23 12:37
閱讀 1180·2019-08-22 18:30
閱讀 2526·2019-08-22 17:30
閱讀 1835·2019-08-22 17:26
閱讀 2284·2019-08-22 16:20