最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

你是如何閱讀jdk源碼的?

2023-08-29 13:18 作者:BYYYSJX  | 我要投稿

閱讀別人的代碼作為開(kāi)發(fā)人員是一件經(jīng)常要做的事情。一個(gè)是學(xué)習(xí)新的編程語(yǔ)言的時(shí)候通過(guò)閱讀別人的代碼是一個(gè)最好的學(xué)習(xí)方法,另外是積累編程經(jīng)驗(yàn)。如果你有機(jī)會(huì)閱讀一些操作系統(tǒng)的代碼會(huì)幫助你理解一些基本的原理。還有就是在你作為一個(gè)質(zhì)量保證人員或一個(gè)小領(lǐng)導(dǎo)的時(shí)候如果你要做白盒測(cè)試的時(shí)候沒(méi)有閱讀代碼的能力是不能完成相應(yīng)的任務(wù)。最后一個(gè)就是如果你中途接手一個(gè)項(xiàng)目的時(shí)候或給一個(gè)項(xiàng)目做售后服務(wù)的時(shí)候是要有閱讀代碼的能力的。


1:找相關(guān)的書

在看相關(guān)源碼時(shí)應(yīng)該對(duì)程序有整體了解,比如看虛擬機(jī)時(shí)至少要知道:垃圾回收算法,Java內(nèi)存布局,class文件格式,加載連接的過(guò)程...很多人看源碼一點(diǎn)頭緒都沒(méi)有,就是因?yàn)椴涣私鈱?duì)應(yīng)的模塊是干嘛的(比如Java是模板解釋器,而不是字節(jié)碼解釋器,call_stub()是為了找到對(duì)應(yīng)模板入口),了解這方面比較好的就是看官方文檔,或者看對(duì)應(yīng)源碼解析的書

2:工具

看類庫(kù)首推idea,多用Structure,多自動(dòng)生成UML圖。先搞清楚接口和類之間的關(guān)系,在去分析函數(shù)。虛擬機(jī)的話還是用VS吧。vim好像不太合適。雖然我是vim粉。

3:閱讀注釋

有很多時(shí)候注釋才說(shuō)明一切,舉幾個(gè)很簡(jiǎn)單簡(jiǎn)單的例子,在IO阻塞的時(shí)候線程是出于BLOCKING還是RUNNABLE,線程的interrupt會(huì)中斷那些函數(shù)?注釋里都說(shuō)的很清楚,看到函數(shù)的時(shí)候只要簡(jiǎn)單讀讀注釋就知道了。

4:有目的性

源碼量那么大,不要妄想一口氣都看完。最好符合你當(dāng)前的目的,比如你想搞懂多線程,你就主要看JUC,想搞懂IO就多去看NIO,想看常量池就去看ClassFileParser。看模塊的時(shí)候,要注意接口大于一切,或者說(shuō)函數(shù)大于一切。先不要妄想搞懂所有細(xì)節(jié),先找?guī)讉€(gè)比較關(guān)鍵的函數(shù),搞懂函數(shù)的作用(比如應(yīng)該仔細(xì)分析一下函數(shù)名稱和參數(shù)名稱)然后再往下進(jìn)行。再看Java類庫(kù)的時(shí)候要多注意類是不是abstract的,是不是用的模板方法,多關(guān)注函數(shù)前的修飾詞,這一般說(shuō)明這個(gè)函數(shù)是給誰(shuí)用的。多注意這些細(xì)節(jié)而不是傻傻的過(guò)一遍邏輯,能從里面學(xué)到不少關(guān)于設(shè)計(jì)的東西。還可以注意什么地方是為了之前的設(shè)計(jì)而委曲求全的做法,畢竟一個(gè)這么多年的類庫(kù),肯定不是什么地方都是完美的。

5:實(shí)驗(yàn)+debug

可以多做做實(shí)驗(yàn),ide的斷點(diǎn)都很好用,記得之前看tomcat的源碼就一直debug。


WRITE-BUG研發(fā)團(tuán)隊(duì)衷心希望【W(wǎng)RITE-BUG數(shù)字空間】可以給每位同學(xué)一個(gè)屬于自己的秘密空間,同時(shí)祝愿大家在“公開(kāi)圈子”世界里,遇見(jiàn)志同道合的伙伴們,因?yàn)槲覀兣c大家一樣,都曾孤獨(dú)前行著。


你是如何閱讀jdk源碼的?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
浏阳市| 金平| 昌吉市| 禄丰县| 林甸县| 宜章县| 高唐县| 禄劝| 稻城县| 博爱县| 连城县| 通化县| 广州市| 九江市| 盐边县| 汉源县| 新河县| 尚志市| 城固县| 剑阁县| 广灵县| 延吉市| 广平县| 勐海县| 新丰县| 扶绥县| 鸡泽县| 徐闻县| 荆门市| 延寿县| 岢岚县| 西乌珠穆沁旗| 靖西县| 宜春市| 民县| 太白县| 彭泽县| 平利县| 惠东县| 庆城县| 松桃|