无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ó)家法律
上饶市| 镇巴县| 石首市| 甘南县| 石阡县| 博乐市| 林甸县| 左权县| 靖宇县| 冷水江市| 庆元县| 香港| 永顺县| 册亨县| 新干县| 朝阳区| 贞丰县| 积石山| 安陆市| 芦山县| 多伦县| 郯城县| 宁津县| 台南市| 太白县| 阳朔县| 嘉善县| 安塞县| 凤山市| 馆陶县| 西乡县| 板桥市| 都江堰市| 沽源县| 怀化市| 加查县| 巨鹿县| 嵊州市| 都昌县| 宝丰县| 隆安县|