如何快速看懂java代碼 怎么去理解那些編寫的代碼?
怎么去理解那些編寫的代碼?怎莫解釋?個(gè)人都覺(jué)得好是的辦法應(yīng)該是跟著程序的運(yùn)行過(guò)程看代碼。第一步是了解一個(gè)程序的生命周期。一個(gè)程序,你先可以找到它的啟動(dòng)入口處,一般最就開(kāi)始大都讀取文件配置文件、打開(kāi)程序
怎么去理解那些編寫的代碼?
怎莫解釋?個(gè)人都覺(jué)得好是的辦法應(yīng)該是跟著程序的運(yùn)行過(guò)程看代碼。
第一步是了解一個(gè)程序的生命周期。一個(gè)程序,你先可以找到它的啟動(dòng)入口處,一般最就開(kāi)始大都讀取文件配置文件、打開(kāi)程序配置之類;接下來(lái)的看它動(dòng)態(tài)創(chuàng)建了什么函數(shù),函數(shù)里面做了什么事情你的操作,數(shù)據(jù)咋變化,肯定它又會(huì)而后調(diào)用另一個(gè)分段函數(shù),你再去去看看兩個(gè)函數(shù)到底在干什么,一步步的走遞歸函數(shù)開(kāi)去,清楚看過(guò)了一個(gè)程序的運(yùn)行過(guò)程。注意這個(gè)過(guò)程,別對(duì)每一個(gè)函數(shù)的實(shí)現(xiàn)細(xì)節(jié)過(guò)多的糾結(jié)。諸如它動(dòng)態(tài)鏈接庫(kù)了一個(gè)運(yùn)行程序配置文件的函數(shù),你只需知道這部分是運(yùn)行程序配置,里面的實(shí)現(xiàn)可能會(huì)很緊張,但這部分對(duì)你打聽(tīng)一下這個(gè)程序的實(shí)現(xiàn)沒(méi)有太大影響,你可以完全略過(guò)。
第二步是對(duì)程序核心功能部分把基于細(xì)節(jié)搞懂。很多程序雖然很龐大,但里面很有可能很多大都一些框架、輔助功能,這些這個(gè)可以略看,依據(jù)自己必須來(lái)自學(xué);這對(duì)一些比較好核心的部分,諸如去學(xué)習(xí)JAVAHashMap的源碼,對(duì)map的先添加、直接輸入、內(nèi)存量等過(guò)程的要清楚它是怎末基于的,這部分是最核心的。
第二步最好是會(huì)模仿這個(gè)程序自己寫一個(gè)類似的程序或則自己把這個(gè)程序重新寫過(guò)一遍。難度太大的話是可以做一個(gè)簡(jiǎn)易版的,只實(shí)現(xiàn)核心功能。別人的代碼看再多也不一定會(huì)會(huì)寫,自己寫一遍在過(guò)程中了解別人程序?yàn)樯兑@么說(shuō)怎么設(shè)計(jì),更好的了解最優(yōu)秀程序最優(yōu)秀在哪里。
以上那是個(gè)人在閱讀別人程序的一點(diǎn)體驗(yàn),泛讀最優(yōu)秀的源碼有助增強(qiáng)自己的編碼水平,如果能能幫助到大家~
如何查看Java代碼的匯編形式?
是用IDE是Eclipse,程序出問(wèn)題了想調(diào)試,但可以設(shè)置了斷點(diǎn)打開(kāi)系統(tǒng)了變量,還是不很清楚哪錯(cuò)了。
1、準(zhǔn)備編譯程序Java源文件,命令:javac
2、第二步將編譯程序生成氣體的class文件轉(zhuǎn)為匯編指令(要可以下載hsdis-amd64.dylib,到j(luò)re/lib)
命令:java-XX:UnlockDiagnosticVMOptions-XX:PrintAssembly-XcompDemodstrok
3、用編輯器再打開(kāi)即可一欄到匯編指令