互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?
來(lái)自:cnblogs.com/deng-cc/p/6927447.html
最近正好也沒(méi)什么可忙的,就回過(guò)頭來(lái)鼓搗過(guò)去的知識(shí)點(diǎn),到Servlet部分時(shí),以前學(xué)習(xí)的時(shí)候硬是把從上到下的繼承關(guān)系和接口實(shí)現(xiàn)記得亂七八糟。這次利用了IDEA的diagram,結(jié)果一目了然,也是好用到炸裂,就此分享。1、查看圖形形式的繼承鏈
在你想查看的類的標(biāo)簽頁(yè)內(nèi),點(diǎn)擊右鍵,選擇 Diagrams,其中有 show 和 show ... Popup,只是前者新建在標(biāo)簽頁(yè)內(nèi),后者以浮窗的形式展示:實(shí)際上,你也可以從左邊的項(xiàng)目目錄樹(shù)中,對(duì)你想查看的類點(diǎn)擊右鍵,同樣選擇Diagrams,效果是一樣的:然后你就會(huì)得到如下圖所示的繼承關(guān)系圖形,以自定義的Servlet為例:藍(lán)色實(shí)線箭頭是指繼承關(guān)系
綠色虛線箭頭是指接口實(shí)現(xiàn)關(guān)系
2、優(yōu)化繼承鏈圖形,想我所想
2.1 去掉不關(guān)心的類
得到的繼承關(guān)系圖形,有些并不是我們想去了解的,比如上圖的Object和Serializable,我們只想關(guān)心Servlet重要的那幾個(gè)繼承關(guān)系,怎么辦?簡(jiǎn)單,刪掉。點(diǎn)擊選擇你想要?jiǎng)h除的類,然后直接使用鍵盤(pán)上的delete鍵就行了。清理其他類的關(guān)系后圖形如下:2.2 展示類的詳細(xì)信息
有人說(shuō),誒,這怎么夠呢,那繼承下來(lái)的那些方法我也想看???簡(jiǎn)單,IDEA通通滿足你。在頁(yè)面點(diǎn)擊右鍵,選擇 show categories,根據(jù)需要可以展開(kāi)類中的屬性、方法、構(gòu)造方法等等。當(dāng)然,第二種方法也可以直接使用上面的工具欄:什么,方法里你還想篩選,比如說(shuō)想看protected權(quán)限及以上范圍的?簡(jiǎn)單,右鍵選擇 Change Visibility Level,根據(jù)需要調(diào)整即可。什么,你嫌圖形太小你看不清楚?IDEA也可以滿足你,按住鍵盤(pán)的Alt,竟然出現(xiàn)了放大鏡,驚不驚喜,意不意外?2.3 加入其他類到關(guān)系中來(lái)
當(dāng)我們還需要查看其他類和當(dāng)前類是否有繼承上的關(guān)系的時(shí)候,我們可以選擇加其加入到當(dāng)前的繼承關(guān)系圖形中來(lái)。在頁(yè)面點(diǎn)擊右鍵,選擇 Add Class to Diagram,然后輸入你想加入的類就可以了:例如我們添加了一個(gè)Student類,如下圖所示。好吧,并沒(méi)有任何箭頭,看來(lái)它和當(dāng)前這幾個(gè)類以及接口并沒(méi)有發(fā)生什么不可描述的關(guān)系:2.4 查看具體代碼
如果你想查看某個(gè)類中,比如某個(gè)方法的具體源碼,當(dāng)然,不可能給你展現(xiàn)在圖形上了,不然屏幕還不得撐炸?但是可以利用圖形,或者配合IDEA的structure方便快捷地進(jìn)入某個(gè)類的源碼進(jìn)行查看。雙擊某個(gè)類后,你就可以在其下的方法列表中游走,對(duì)于你想查看的方法,選中后點(diǎn)擊右鍵,選擇 Jump to Source:在進(jìn)入某個(gè)類后,如果還想快速地查看該類的其他方法,還可以利用IDEA提供的structure功能:選擇左側(cè)欄的structure之后,如上圖左側(cè)會(huì)展示該類中的所有方法,點(diǎn)擊哪個(gè)方法,頁(yè)面內(nèi)容就會(huì)跳轉(zhuǎn)到該方法部分去。3、最后
用上面提到的的IDEA這些功能,學(xué)習(xí)和查看類關(guān)系,了解諸如主流框架源碼之類的東西,可以說(shuō)是非常舒服了。互聯(lián)網(wǎng)初中高級(jí)大廠面試題(9個(gè)G)內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬(wàn)并發(fā)、消息隊(duì)列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper、數(shù)據(jù)結(jié)構(gòu)、限流熔斷降級(jí)......等技術(shù)棧!
?戳閱讀原文領(lǐng)??!? ? ? ? ? ? ? ??? ??? ? ? ? ? ? ? ? ? ?朕已閱?