精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

www.色在线| 中文字幕资源网| 亚洲国产精品嫩草影院久久av| 精品久久久香蕉免费精品视频| 蜜桃欧美视频| jlzzjlzz亚洲女人18| 国产深夜精品| 久久久精品电影| 国产精品无码永久免费不卡| 欧洲精品久久久久毛片完整版| 亚洲宅男天堂在线观看无病毒| 久久香蕉综合色| 国产模特av私拍大尺度| 午夜亚洲视频| 国产69精品久久久久9| 手机看片国产日韩| 亚洲免费专区| 欧美不卡在线视频| 91热这里只有精品| 免费在线小视频| 一区二区三区中文在线| 日韩精品国内| 日韩美女一级视频| 成人免费视频国产在线观看| 国产精品一区专区欧美日韩| 99久久精品国产亚洲| 欧美午夜在线| 久久中文字幕在线| 久久婷婷五月综合| 亚洲成aⅴ人片久久青草影院| 日韩一区二区不卡| 色噜噜狠狠永久免费| 自拍偷拍亚洲视频| 黄色一区二区三区| 精品少妇人欧美激情在线观看| 日本电影全部在线观看网站视频 | 国产极品jizzhd欧美| 久久综合亚洲色hezyo国产| 欧美freesextv| 亚洲午夜久久久久久久| 9.1成人看片| 亚洲人成伊人成综合图片| 精品91自产拍在线观看一区| japan高清日本乱xxxxx| 亚瑟国产精品| 美女视频在线免费| 日本一区二区三区国色天香| 欧美xxxx黑人又粗又长精品| 天堂在线视频观看| www.日韩av| 国产专区一区二区| 少妇高潮一区二区三区99小说| 国产成+人+日韩+欧美+亚洲| 99伊人久久| 俄罗斯嫩小性bbwbbw| 国产宾馆实践打屁股91| 99九九视频| 欧洲精品久久一区二区| 99久久er热在这里只有精品15 | 神马久久久久久久久久| 成人毛片在线观看| 精品久久久久久乱码天堂| 天天摸夜夜添狠狠添婷婷| heyzo一本久久综合| 久久精品国产理论片免费| 青青草娱乐在线| 国产香蕉久久精品综合网| 亚洲激情电影在线| 免费av在线| 亚洲精品欧美在线| 91成人免费观看网站| 欧美亚洲另类久久综合| 你懂得在线网址| 欧美激情自拍偷拍| 国产香蕉一区二区三区| 91色在线看| 日本韩国视频一区二区| 亚洲综合激情视频| caoporn成人| 亚洲欧美制服丝袜| 老司机成人免费视频| 欧美人与禽猛交乱配视频| 97在线免费视频| 精人妻无码一区二区三区| 美日韩一级片在线观看| 亚洲最大的成人网| 内衣办公室在线| 亚洲精品一二三| 狠狠爱免费视频| 成人网av.com/| 亚洲精品久久久久| 四虎地址8848| 国产欧美一级| 91亚洲永久免费精品| 色偷偷在线观看| 亚洲国产精品传媒在线观看| www.亚洲成人网| 亚洲成人一区在线观看| 精品少妇一区二区三区在线视频| 亚洲成人网在线播放| 一区二区电影| 国产精品成av人在线视午夜片 | 日韩欧美激情四射| 国产jjizz一区二区三区视频| 91高清一区| 欧洲成人免费aa| 国产成人a人亚洲精品无码| 99久久国产综合精品色伊| 亚洲成年人专区| 久久野战av| 亚洲国产精品99久久| 大地资源高清在线视频观看| 久久国产在线视频| 欧美有码视频| 国产精品国产三级国产aⅴ浪潮 | 日韩av在线一区二区| 国产黄色录像片| 翔田千里一区二区| 懂色av一区二区三区在线播放| 成年人在线观看视频| 天天影视涩香欲综合网| 91精品国产三级| 日本一二区不卡| 全球成人中文在线| 欧美一级特黄aaaaaa| 亚洲欧美电影一区二区| 日日噜噜夜夜狠狠| 欧美人与牛zoz0性行为| 韩国美女主播一区| 亚洲AV无码一区二区三区少妇| 国产精品美女www爽爽爽| 无码人妻丰满熟妇区毛片18| 国产一区二区三区亚洲| 九九热视频这里只有精品| 亚洲影视一区二区| 亚洲国产精品t66y| 搡女人真爽免费午夜网站| 奇米色欧美一区二区三区| 2023亚洲男人天堂| 午夜在线视频免费| 五月激情六月综合| 国产精品一区二区人妻喷水| 欧美精品观看| 972aa.com艺术欧美| 91探花福利精品国产自产在线| a√在线中文网新版址在线| 91久久精品一区二区| 成人免费毛片糖心| 日韩在线观看一区二区| 日韩高清dvd| 国产69精品久久久久9999人| 色婷婷综合久久久久| 一区二区视频网| 中文字幕一区日韩精品欧美| 中文字幕 日韩 欧美| 亚洲精品电影| 国产福利久久| 精品人人视频| 亚洲网站在线播放| 亚洲系列在线观看| 亚洲美女淫视频| 自拍一级黄色片| 国产精品sm| 成人片在线免费看| 国产h片在线观看| 亚洲欧美精品伊人久久| 最新在线中文字幕| 中文字幕亚洲一区二区va在线| 免费精品99久久国产综合精品应用| 国产精品伦理久久久久久| 亚洲自拍av在线| a在线视频v视频| 亚洲天堂免费观看| 国产精品久久久久久久久毛片| 亚洲素人一区二区| 免费黄色a级片| 久久久久网站| 国产又粗又爽又黄的视频| 91在线一区| 欧美怡红院视频一区二区三区| 3p视频在线观看| 欧美高清视频手机在在线| 视频一区视频二区国产精品 | 亚洲精品成人自拍| 91麻豆精品国产综合久久久 | 免费观看性欧美大片无片| 久久久久久久久久久免费精品| 日韩电影免费| 91精品国产色综合久久久蜜香臀| 国产亚洲精品女人久久久久久| 久久网站最新地址| 欧美视频亚洲图片| 亚洲一区视频| 视色,视色影院,视色影库,视色网| 日韩高清三区| 成人信息集中地欧美| 国产啊啊啊视频在线观看| 亚洲午夜小视频| 性生交生活影碟片| 欧美色图免费看| 日韩人妻无码一区二区三区99| 国产日韩精品一区二区三区在线| 婷婷中文字幕在线观看| 香蕉久久久久久久av网站| 自拍偷拍视频在线| 欧美人妻精品一区二区三区| 国产模特精品视频久久久久| 国产精品亚洲天堂| 精品国产视频| 国产专区一区二区| 久久久久久久久久久久电影| 国产精品99久久99久久久二8| 伦理在线一区| 色偷偷噜噜噜亚洲男人的天堂| 亚洲 小说区 图片区 都市| 日韩一区二区视频| 在线视频你懂得| 日韩欧美国产激情| 国产精品成人久久| 亚洲黄网站在线观看| 亚欧精品视频一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 性色av浪潮av| 精品亚洲免费视频| 国产一区二区在线免费播放| 国产欧美一级| a级黄色一级片| 亚洲视频综合| 又大又硬又爽免费视频| 欧美一区二区三区另类| 性欧美18一19内谢| 我不卡影院28| 视频一区二区视频| 欧美国产一级| 亚洲午夜精品久久久中文影院av| 红桃成人av在线播放| 久中文字幕一区| 亚洲aa在线| 欧美另类高清视频在线| 亚洲第一福利专区| 欧美一区二区三区四区在线观看地址| 大型av综合网站| 国产九色精品| 久久久久97| 久久久久久艹| 亚洲精品国模| 日韩欧美三级一区二区| 国产尤物久久久| 日韩欧美视频一区二区| re久久精品视频| 一区二区在线观看网站| 国产精品国产一区| 福利在线小视频| 亚洲视频狠狠| 国产aaa一级片| 日日摸夜夜添夜夜添国产精品| 国产精品69页| 免费在线观看视频一区| 色天使在线观看| 国产一区在线视频| 日韩Av无码精品| 久久久久久免费网| 亚洲天堂第二页| 国产一区二区三区成人| 制服丝袜亚洲播放| 国产 欧美 自拍| 日韩国产欧美精品一区二区三区| 三级毛片在线免费看| 国产亚洲精品美女久久久久| 欧美午夜电影一区二区三区| 精品少妇v888av| 欧亚在线中文字幕免费| 国产精品久久久久福利| 成人综合日日夜夜| 国产欧美在线一区二区| 九九久久婷婷| 四虎永久免费网站| 亚洲国产日本| 在线视频日韩一区 | 川上优av一区二区线观看| 亚洲精品18| 欧美一区二区三区成人久久片 | 一级黄色片网站| 亚洲精品一区二区三区在线观看| 污视频在线免费观看| 色综久久综合桃花网| 免费在线中文字幕| 国产成人精品日本亚洲专区61| 亚洲人成777| 精品日韩欧美| 1024精品久久久久久久久| 久久精品视频16| 激情久久五月天| 久久精品一区二区免费播放 | 男女啪啪免费观看| 翔田千里一区二区| 韩国三级hd中文字幕有哪些| 久久久久久久久久电影| 少妇久久久久久被弄高潮| 欧美色xxxx| 不卡视频在线播放| 一二美女精品欧洲| 国产福利在线免费观看| 国产欧美一区二区三区四区| 亚洲精品一级二级三级| 日韩一二区视频| 麻豆成人91精品二区三区| 天天插天天射天天干| 亚洲精品视频一区二区| 中文字幕二区三区| 日韩精品一二三四区| 精品人妻一区二区三| 久久在线视频| 337p粉嫩大胆噜噜噜鲁| 国产成人亚洲精品狼色在线| 国产精品综合激情| 日韩欧美极品在线观看| 丰满熟妇乱又伦| 久久视频在线直播| 懂色aⅴ精品一区二区三区| 久久精品人成| 亚洲午夜黄色| 日本黄色三级网站| 1区2区3区精品视频| 国产精品无码一区| 亚洲毛片在线观看.| free性m.freesex欧美| 97人人模人人爽人人喊38tv| 久久久久午夜电影| 国产亚洲视频一区| 中文av一区二区| 波多野结衣在线电影| 精品一区二区三区四区| sm久久捆绑调教精品一区| 高清国语自产拍免费一区二区三区| 国产精品福利在线观看播放| 男女男精品视频站| 国产视频视频一区| 国产精品777777| 亚洲欧洲一区二区三区在线观看| free性护士videos欧美| 国产在线一区二区三区四区| 在线成人欧美| 在线天堂www在线国语对白| 亚洲夂夂婷婷色拍ww47| 免费观看的毛片| 69久久夜色精品国产7777| 欧美成人基地| 成年人免费在线播放| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲第一精品在线观看| 精品中文视频在线| 欧美香蕉视频| 性刺激综合网| 久久超级碰视频| 中文字幕在线2021| 日韩欧美国产精品一区| 一区二区三区在线视频看| 爽好久久久欧美精品| 快灬快灬一下爽蜜桃在线观看| 欧美日韩一区 二区 三区 久久精品| 高清性色生活片在线观看| 国产欧美在线观看| 欧美激情在线| 中文在线永久免费观看| 一本到三区不卡视频| 日本中文在线观看| 91情侣在线视频| 一区二区日韩免费看| 欧美黄色一级生活片| 制服丝袜亚洲网站| 98色花堂精品视频在线观看| 青青草国产精品| 久久er精品视频| 日本熟伦人妇xxxx| 亚洲无线码在线一区观看| 伊人亚洲精品| 男人用嘴添女人下身免费视频| 国产婷婷色一区二区三区在线| 亚洲天天综合网| 国语自产精品视频在线看| 国产欧美日韩在线观看视频| 小明看看成人免费视频| 亚洲mv在线观看| av在线日韩国产精品| 俄罗斯精品一区二区| 日本在线不卡视频一二三区| 唐朝av高清盛宴| 亚洲免费小视频| 久久99成人| 日韩在线xxx| 亚洲影院理伦片| 成人免费一区二区三区视频网站| 98国产高清一区| 日本伊人色综合网| 久久久久久久99| 色吧影院999| 精品一区三区| 在线看黄色的网站| 成人亚洲精品久久久久软件|