精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

看大牛是如何閱讀JDK源碼,漲漲見識

開發 前端
為什么需要閱讀源碼?從實用性的角度來看,主要有三個目的:第一,解決手頭的新問題或者新需求;第二,真正理解一部分理論的落地實現;第三,應對面試。

如何閱讀源碼,是每個程序員需要面臨的一項挑戰。

為什么需要閱讀源碼?從實用性的角度來看,主要有三個目的:第一,解決手頭的新問題或者新需求;第二,真正理解一部分理論的落地實現;第三,應對面試。

[[273787]]

端正心態

在準備投身到閱讀源碼的事業之前,首先需要端正一下心態:

  1. 閱讀源碼是一場持久戰,淺嘗輒止的話,頂多能寫幾篇水文,吸點粉糊弄下新手,對自身實力的提高沒有顯著作用。
  2. 閱讀源碼是錦上添花,不是雪中送炭。如果你進入一個全新的領域,首要的任務是讀文檔而不是讀源碼。
  3. 閱讀源碼不一定會讓你成為大神。大神有兩個方向:專家型和應用型,無論你的發展偏向哪一方,大量實操才是最根本的保障。
  4. 閱讀源碼需要理論先行。比如閱讀Socket通信的代碼卻不知道TCP/UDP協議,那就像是無頭蒼蠅在亂撞而已。

在此,我更推薦把源碼閱讀當成是一項興趣愛好去做,就好比有的人通過打游戲看直播放松,有的人通過刷新聞追熱劇放松,還有的人通過找朋友吹牛逼放松...不同的人會選擇不同的勞逸結合方式,我更喜歡不寫代碼的時候,通過看別人的代碼來放松。

作為一名Javaer,朝夕相處的JDK自然是你遇到的第一處寶藏之地。從閱讀JDK代碼出發,可以深入理解Java的一些新老特性,并學習部分設計模式的應用,以及為將來閱讀更龐大的框架打下扎實的理論基礎與頑強的心理基礎。

選擇工具

工欲善其事必先利其器,起步之前,需要先選擇一款源碼閱讀工具。在工具的選擇上,同行的建議很多,我大致將其分為四類:

  • 文本型工具(該分類可能會有爭議,不過這不是重點...)
  • 例如Nodepad++、EditPlus、UEStudio、Sublime、VsCode、Vim等
  • 專家型工具
  • 例如Source Insight、Understand、OpenGrok(也是很多在線工具的基石)等
  • 在線工具(好幾個在線網站已經掛了)
  • 例如openjdk、SearchCode等
  • IDE
  • 例如eclipse/myeclipse、IDEA等

從個人喜好講,我推薦IDEA和UEStudio(搭配UltraFinder)配合使用。

IDEA作為強大的Java生產工具,用來閱讀Java源碼顯然再合適不過。而UEStudio可以作為臨時查看Java文件或者查看JDK中部分C++代碼時的選擇,再搭配UltraFinder,實現跨文件的任意符號搜索,很實用。

關于閱讀環境的搭建,參見我在https://github.com/kangjianwei/LearningJDK中的描述即可。

閱讀順序

JDK的項目歷經了十幾個大版本,算上開源社區的貢獻,經手的人可能也達到上千人。對于這種龐大的項目,一次性讀完肯定是不可能,必須先找到一個恰當的入口,分模塊來一點點啃完。

可能的一種閱讀順序是:

  1. 基本類型的包裝類(Character放在最后)
  2. String、StringBuffer、StringBuilder、StringJoiner、StringTokenizer(補充正則表達式的知識)
  3. CharacterIterator、StringCharacterIterator、CharsetProvider、CharsetEncoder、CharsetDecoder(較難)
  4. java.util.function下的函數表達式
  5. java.nio下的各種Buffer實現
  6. java.lang.ref和jdk.internal.ref下的各種引用:軟引用/弱引用/虛引用
  7. Unsafe的實現(JDK9之后有兩個同名類,一個引用了另一個,建議放在一起閱讀)
  8. java.util.stream下的流式編程的實現(很難)
  9. Thread和ThreadLocal
  10. Math、Random、BigInteger、BigDecimal
  11. java.lang.reflect下反射的實現(先掌握JDK 9之后引入的模塊系統)
  12. ClassLoader的實現
  13. javax.lang.model下Java語言模型的實現(可以參考Java官方語法文檔)
  14. 注解(需要徹底掌握)
  15. Timer、ResourceBundle、Properties
  16. 時間日期類型(尤其是Java8新增的部分)
  17. java.lang.reflect.Proxy, JDK默認的動態代理
  18. java.util.concurrent并發包。先讀原子類,再讀鎖的實現類,最后閱讀那些并發工具的實現(很難)
  19. 集合框架,主要是三大類:List、Set、Map(先讀非線程安全的實現,再讀線程安全的實現)
  20. 網絡編程(主要閱讀Socket通信部分,后續可以閱讀HttpClient的實現)
  21. IO/NIO/BIO(很難)
  22. Files、Path等文件操作工具類
  23. sql、xml處理類/接口
  24. ......

注意,這里說的順序只是一個大致的方向,并不代表需要絕對按照這個名單來。

在閱讀某一個代碼時,往往會牽涉到很多別的代碼,這個時候就會產生很多閱讀分支,分支的走向,并不在上述名單之內。

善用技巧

閱讀代碼的技巧,因人而異。就像一千位讀者,就有一千部哈姆雷特,每個人對這件事的看法并不相同。在此,我只談下個人的一些經驗。

理論先行。閱讀某一個模塊時,先搜索它的理論支撐,甚至可以先看別人的閱讀經驗,有了一個大致的了輪廓之后,自己再去實踐。

必須試用。面對一個新的類,最好是先搜索一下它的基本用法,寫成一個小的示例,并從這個示例中用到的方法入手,去分析這個類。

巧用調試。關于IDEA中debug的使用方式,超出了本文的講述范圍。值的注意的是,除了需要學習常用的運行時調試,還需要學習編譯時調試,這個在閱讀Java語言模型那塊的代碼時很有用。

分清主次。類與類之間呈網狀結構,在閱讀某個類的時候,不可避免地需要先去閱讀它引用的其他類。但是,如果它引用的類很復雜,則建議先放一放,做個標記,回頭再讀。不過,如果在閱讀多個類時,其調用鏈最終都指向了同一個類,那么這個類就必須先拿下了。

業務為先。如果一個類太過龐大,則先將其中的方法按功能歸類,捋清大致的執行流程,接下來再逐個功能地去攻克。

不求甚解。有些方法不需要搞清楚實現過程,只需要了解它的作用。比如一些特定領域的算法,對某些規則的解析等。

以點帶面。如果看懂了某一個方法,就要搜索該方法的所有應用之處,驗證自己的想法是否正確,并在應用之處寫下注釋。哪怕理解的有誤差也沒事,回頭有新的理解再批量修改。對于字段的閱讀與理解,也建議采取此種方式。

勇于試錯。很多接口方法的描述很抽象,在不同的實現類中意義相差很大。此時先弄懂一個類的實現,然后拿著在這個類中的理解去解讀另外的實現類,如果解讀有誤,再逐漸修復。不要指望一次性就能正確地理解某個方法的作用,理解錯誤,不妨礙繼續前進。

留意注釋。大部分公開的方法上都有相應的注釋,這是快速理解這個方法的重要途徑。注釋建議拿到谷歌翻譯下去閱讀,當然,如果能流利閱讀英文就更好了。不過,很多時候,注釋是令人沮喪的:看完之后完全不知道他在說啥。這個也很正常,因為有些注釋中會涉及到很多行業術語或通用解決方案的描述,如果之前沒有這些理論背景,大概率是讀不懂注釋的。原生注釋不是萬能的,有時候甚至很雞肋:你不理解這個方法之前,也不理解他的注釋,等你理解了這個方法,才會覺得這些注釋說得對。因此,我建議留意注釋,但別依賴注釋,有時候搜索其他網友的理解,再結合自己的閱讀,會來的更舒服一些。

勤做筆記。有一點靈感,就需要記錄一下,最好是直接記錄在源碼對應的位置,而且能詳細就別簡略,好記性終究抵不過爛筆頭。

循序漸進。在頭腦清醒的時候,打開源碼讀一讀,感覺讀不懂的時候,就不要繼續死磕了,應該放下干點別的,或者改天再讀。我讀完一個類,時間跨度可能會超過一個月,這是個不斷補充和完善的過程,不可能一次性就搞定。有時候眼看就讀懂了,但就是差一點點關鍵性的理解,這個時候人就容易急,急就容易燥,燥就容易慌,慌就容易亂,亂就容易砸鼠標。所以,一旦覺得遇到瓶頸,那就及時終止吧,因為你可能需要放松大腦,以及補充一些缺失的基礎理論了。

責任編輯:未麗燕 來源: 安卓巴士
相關推薦

2020-12-07 11:29:24

ReactVueVue3

2010-04-01 08:46:57

CentOS系統

2018-11-16 16:35:19

Java源碼編程語言

2021-08-02 09:50:47

Vetur源碼SMART

2017-04-13 19:26:21

2021-03-13 14:08:00

Hadoop 源碼HDFS

2021-12-20 07:58:59

GitHub源碼代碼

2020-11-25 11:48:12

比特幣加密貨幣區塊鏈

2013-12-24 10:05:04

memcached

2018-07-31 14:49:45

編程語言Java源碼

2020-04-23 16:16:42

物聯網機器人技術

2009-08-25 16:12:46

Visual C#制作

2018-06-25 11:20:18

LinuxPython大數據

2023-02-06 21:58:23

2022-08-26 13:41:19

代碼PythonJava

2017-03-16 11:39:33

Openstack源碼姿勢

2022-03-30 07:32:10

JDK8異步編程

2022-10-08 08:01:17

Spring源碼服務

2012-02-14 14:05:59

JavaSpring
點贊
收藏

51CTO技術棧公眾號

91在线网站视频| 久青草国产97香蕉在线视频| 日韩一级片播放| 免费av在线网站| 成人一区二区三区视频在线观看| 8x拔播拔播x8国产精品| 懂色av蜜臀av粉嫩av永久| 国产一区二区久久久久| 精品露脸国产偷人在视频| 亚洲免费久久| 天堂网在线播放| 精品一区二区久久久| 97在线视频一区| 久久久精品少妇| 要久久爱电视剧全集完整观看| 欧美顶级少妇做爰| 欧美女人性生活视频| 国产男女无遮挡| 国产一级片视频| 91一区二区三区四区| 亚洲国产日韩欧美在线99| 天天干天天操天天玩| 超碰在线99| 亚洲日本在线a| 欧美一区激情视频在线观看| 精品国产99久久久久久宅男i| 老司机一区二区三区| 欧美黑人又粗大| 91ts人妖另类精品系列| 欧美女王vk| 亚洲国产精品一区二区三区| 91高清国产视频| 午夜精品久久久久久久久久蜜桃| 亚洲综合色成人| 9999在线观看| 在线视频三区| 国产欧美一区二区三区在线看蜜臀| 国产伦精品一区二区| 99热这里只有精| 九色综合国产一区二区三区| 国产成人在线一区| 特级毛片www| 亚洲永久字幕| 97超碰色婷婷| 国产又爽又黄的视频| 亚洲手机在线| 亚洲国产va精品久久久不卡综合 | 久久久久国产精品免费网站| 妖精视频在线观看免费| 欧美理论电影大全| 亚洲片av在线| 黄色aaa视频| 国产不卡一区| 伊人久久久久久久久久久| 李宗瑞91在线正在播放| 蜜桃精品噜噜噜成人av| 亚洲男女自偷自拍图片另类| 深爱五月激情网| 男男gay无套免费视频欧美| 日韩av在线导航| 亚洲av无码国产精品久久| 欧洲亚洲视频| 亚洲欧洲高清在线| 日韩欧美黄色网址| 欧美黄色大片在线观看| 久久福利视频网| 久久久久成人网站| 亚洲免费高清| 国产精品成久久久久三级| 色婷婷久久综合中文久久蜜桃av| 蜜乳av一区二区| 性做久久久久久| 免费视频爱爱太爽了| caoporn视频在线| 欧美日韩视频免费播放| 91av俱乐部| 国产a亚洲精品| 日韩一级二级三级精品视频| 亚洲成人激情小说| 日本一道高清一区二区三区| 亚洲欧洲国产精品| 黄色一级大片在线免费观看| 国内成人在线| 国产精品18久久久久久首页狼| 中文字幕二区三区| 国产成人免费视| 欧美日本韩国一区二区三区| 中文字幕在线播放| 亚洲国产欧美在线| 中文字幕国产传媒| av日韩在线播放| 亚洲丝袜在线视频| 婷婷在线精品视频| 久久久国产亚洲精品| 成人免费淫片aa视频免费| 好吊视频一二三区| 日本一区二区三区在线观看| 三级在线免费观看| 欧美日韩视频网站| 欧美va在线播放| 69精品无码成人久久久久久| 欧美国产专区| 国产精品成人免费视频| 亚洲av无码乱码国产精品| 国产午夜精品一区二区| 日韩精品一区二区三区四| 日韩精品一区二区三区av| 亚洲一区二区在线免费看| 丰满少妇被猛烈进入高清播放| 粉嫩一区二区三区在线观看| 亚洲美女久久久| 久久久99精品| 久久成人18免费观看| 精品国产中文字幕| 97caopron在线视频| 亚洲国产精品av| 日韩精品一区在线视频| 日韩久久一区| 亚洲午夜女主播在线直播| 国产无码精品在线播放| 国内精品伊人久久久久av一坑| 欧美精品一区在线| 电影在线观看一区| 欧美一二三区在线| 蜜桃av免费观看| 久久久久国产精品一区二区| 国产福利久久| 羞羞视频在线观看不卡| 欧美日韩综合色| 一卡二卡三卡四卡| 国产麻豆综合| 国产在线资源一区| hd国产人妖ts另类视频| 欧美一区二区三区四区五区| 日本不卡一区视频| 青青草原综合久久大伊人精品优势 | 国产精品旅馆在线| 深夜影院在线观看| 天天综合天天综合色| 一本色道久久hezyo无码| 欧美一区精品| 96pao国产成视频永久免费| 在线观看免费高清完整| 欧美日韩在线三区| 香蕉成人在线视频| 久久er精品视频| 一本一生久久a久久精品综合蜜| 亚洲精品在线影院| 亚洲图中文字幕| 香蕉污视频在线观看| 91年精品国产| 免费日韩中文字幕| 成人激情电影在线| 国产精品网址在线| 黄a在线观看| 日韩三级在线免费观看| 久久久久久久黄色| 成人毛片视频在线观看| 久久黄色片视频| 美女久久久久| 国产精品日韩在线一区| 自拍视频在线| 日韩欧美国产麻豆| 亚洲一区欧美在线| 久久久亚洲精品石原莉奈| 丁香婷婷激情网| 亚洲成人日韩| 超碰97国产在线| 无遮挡在线观看| 中文字幕v亚洲ⅴv天堂| 国产精品一区二区三区在线免费观看 | 国产久卡久卡久卡久卡视频精品| 草莓视频一区| 亚洲优女在线| 色狠狠久久aa北条麻妃| 国产成人精品一区二区无码呦| 亚洲香蕉伊在人在线观| 一本色道久久综合亚洲精品图片| 日本不卡一二三区黄网| 麻豆md0077饥渴少妇| 激情av综合| 国产精品扒开腿爽爽爽视频| a黄色片在线观看| 日韩精品视频在线播放| 中文字幕在线观看1| 亚洲愉拍自拍另类高清精品| 亚洲午夜久久久久久久久红桃| 久久 天天综合| av黄色在线网站| 亚洲一级淫片| 麻豆精品视频| www.91精品| 欧美专区第一页| 97caopron在线视频| 亚洲欧美日韩中文在线制服| 国产免费一区二区三区最新不卡| 婷婷久久综合九色综合绿巨人| 永久免费av无码网站性色av| 国产精品1区2区| 国产熟人av一二三区| 国产综合色产| 中文字幕av导航| 亚洲a级精品| 91中文字幕一区| 久久天堂av| 国内精品久久久| 国产色在线观看| 国产亚洲福利一区| 空姐吹箫视频大全| 7777精品伊人久久久大香线蕉| 激情视频网站在线观看| 亚洲在线免费播放| 免费国产羞羞网站美图| 国产日本欧美一区二区| 7788色淫网站小说| 国产suv精品一区二区6| 福利片一区二区三区| 久久久久一区| 日本免费不卡一区二区| 欧美成人日本| 国产经典久久久| 日本大胆欧美| 欧美精品免费观看二区| youjizz亚洲| 国产区精品视频| 日韩高清不卡| 欧美在线视频观看| 女厕盗摄一区二区三区| 久久久伊人欧美| 日本片在线观看| 久久成人av网站| 美女隐私在线观看| 色综久久综合桃花网| 国产在线日本| 亚洲情综合五月天| 人成免费电影一二三区在线观看| 精品国产三级a在线观看| www.成人免费视频| 日韩精品在线看片z| 精品国产乱码一区二区三| 91精品国产乱| 国产精品乱码久久久| 91精品国产欧美一区二区成人| 亚洲天堂男人网| 欧美肥妇毛茸茸| av 一区二区三区| 日韩三级视频在线看| av网站在线免费看| 日韩精品一区二区三区视频在线观看 | 亚洲不卡在线播放| 中文字幕日韩一区| 中文字幕电影av| 亚洲男人的天堂在线观看| 欧美一区二区三区爽爽爽| 亚洲精品中文在线| 久久伊人成人网| 精品久久久久久久久中文字幕| 亚洲一区 视频| 日韩欧美成人网| 中文字幕免费高清网站| 欧美日韩国产小视频| 99久久国产免费| 精品福利在线导航| 人操人视频在线观看| 中文字幕亚洲字幕| 97影院秋霞午夜在线观看| 久久久久久久久久久亚洲| 在线免费三级电影网站| 国产精品第一区| 中文字幕成人| 国内不卡一区二区三区| 久久99视频| 日本xxx免费| 99精品99| 午夜国产一区二区三区| 国产乱子伦视频一区二区三区 | 91九色蝌蚪91por成人| 日韩一区二区在线观看| 污污视频在线观看网站| 国产亚洲精品久久久久动| 成人在线免费看黄| 26uuu国产精品视频| 欧美激情三区| 狠狠爱一区二区三区| 日韩aaaa| 九色自拍视频在线观看| 日韩av一区二区在线影视| 国产精品探花在线播放| 91欧美一区二区| 美女视频久久久| 欧美午夜精品久久久久久久| 一级爱爱免费视频| 亚洲精品国精品久久99热一| 欧美日韩在线资源| 欧美亚洲另类制服自拍| av成人在线网站| 日产中文字幕在线精品一区 | 国产精品不卡在线观看| 日产精品久久久久| 制服丝袜亚洲网站| 国产在线观看免费| 久久久久久久久久久久av| 国产a亚洲精品| 精品一区二区三区日本| 91精品久久久久久久久久不卡| 日韩av资源在线| 国产91丝袜在线观看| 国产一二三四视频| 欧美日韩在线第一页| 精品人妻一区二区三区三区四区 | 麻豆久久久久| 久久99导航| 国产精品a久久久久| 天堂一区在线观看| 久久这里都是精品| 免费在线视频一区二区| 在线成人午夜影院| 国产永久免费高清在线观看视频| 国内免费精品永久在线视频| 成人免费观看49www在线观看| 欧美日韩亚洲在线| 亚洲美女啪啪| 国产白袜脚足j棉袜在线观看 | 国产精品18p| 欧美一三区三区四区免费在线看 | 亚洲一级免费在线观看| 26uuu久久综合| 国产成人在线观看网站| 日韩免费在线观看| 国产精品va在线观看视色| 国产日韩换脸av一区在线观看| 国产精品密蕾丝视频下载| 欧美精品99久久| 91免费观看视频在线| 日韩黄色一级大片| 亚洲电影免费观看高清| av资源中文在线| 国产综合色一区二区三区| 亚洲国产二区| 亚洲精品女人久久久| 天天综合天天做天天综合| 性感美女视频一二三| 97色在线播放视频| 亚洲动漫精品| 粗暴91大变态调教| 国产欧美日韩中文久久| 一区二区三区在线免费观看视频| 一区二区三区黄色| 精品福利在线| 成年人黄色在线观看| 国产一区二区伦理| 久草视频免费在线播放| 日韩欧美一区二区在线视频| 四虎影院观看视频在线观看| 国产99在线免费| 一区二区激情| 欧美18—19性高清hd4k| 欧美在线观看一二区| 91社区在线观看| 91日本视频在线| 亚洲天堂黄色| 成年人网站免费看| 欧美无砖砖区免费| 成人无遮挡免费网站视频在线观看| 亚洲中国色老太| 亚洲久久成人| 级毛片内射视频| 制服丝袜亚洲精品中文字幕| 国产亚av手机在线观看| 免费国产一区二区| 六月婷婷色综合| 精品无码av在线| 亚洲人成电影网站色www| 日韩午夜视频在线| 日本精品久久久久久久久久| 久久综合视频网| 中文字幕在线播放日韩| 欧美丰满少妇xxxxx做受| 日韩理论电影中文字幕| 最新中文字幕免费视频| 亚洲男人的天堂网| 日韩黄色影片| 成人精品网站在线观看| 91久久中文| 一级性生活免费视频| 亚洲成在人线av| 韩国精品视频在线观看 | 日本欧美大码aⅴ在线播放| 黑人操日本美女| 日韩精品免费视频| 24小时成人在线视频| 内射国产内射夫妻免费频道| 亚洲视频资源在线| 秋霞av在线| 99国产在线观看| 男人的天堂亚洲一区| 日本在线小视频| 不卡伊人av在线播放| 亚洲素人在线| 久久久久99人妻一区二区三区|