IDEA高效查看源碼的快捷鍵及小技巧
基本操作
查看當(dāng)前類的層次結(jié)構(gòu)
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ????? | Ctrl + H |
平時(shí),我們閱讀源碼的時(shí)候,經(jīng)常需要查看類的層次結(jié)構(gòu)。就比如我們遇到抽象類或者接口的時(shí)候,經(jīng)常需要查看其被哪些類實(shí)現(xiàn)。
拿 Spring 源碼為例,BeanDefinition 是一個(gè)關(guān)于 Bean 屬性/定義的接口。
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
......
}
如果我們需要查看 BeanDefinition 被哪些類實(shí)現(xiàn)的話,只需要把鼠標(biāo)移動(dòng)到 BeanDefinition 類名上,然后使用快捷鍵 Ctrl + H 即可。

同理,如果你想查看接口 BeanDefinition 繼承的接口 AttributeAccessor 被哪些類實(shí)現(xiàn)的話,只需要把鼠標(biāo)移動(dòng)到 AttributeAccessor 類名上,然后使用快捷鍵 Ctrl + H 即可。
查看類結(jié)構(gòu)
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ???? | Alt + 7(Win) / Command +7 (Mac) |
類結(jié)構(gòu)可以讓我們快速了解到當(dāng)前類的方法、變量/常量,非常使用!
我們?cè)趯?duì)應(yīng)的類的任意位置使用快捷鍵 Alt + 7(Win) / Command +7 (Mac)即可。

快速檢索類
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ????? | Ctrl + N (Win) / Command + O (Mac) |
使用快捷鍵 Ctrl + N (Win) / Command + O (Mac)可以快速檢索類/文件。

關(guān)鍵字檢索
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ????? | 見(jiàn)下文 |
- 當(dāng)前文件下檢索 :
Ctrl + F(Win) /Command + F(Mac) - 全局的文本檢索 :
Ctrl + Shift + F(Win) /Command + Shift + F(Mac)
查看方法/類的實(shí)現(xiàn)類
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ???? | Ctrl + Alt + B (Win) / Command + Alt + B (Mac) |
如果我們想直接跳轉(zhuǎn)到某個(gè)方法/類的實(shí)現(xiàn)類,直接在方法名或者類名上使用快捷鍵 Ctrl + Alt + B/鼠標(biāo)左鍵 (Win) / Command + Alt + B/鼠標(biāo)左鍵 (Mac) 即可。
如果對(duì)應(yīng)的方法/類只有一個(gè)實(shí)現(xiàn)類的話,會(huì)直接跳轉(zhuǎn)到對(duì)應(yīng)的實(shí)現(xiàn)類。
比如 BeanDefinition 接口的 getBeanClassName() 方法只被 AbstractBeanDefinition 抽象類實(shí)現(xiàn),我們對(duì)這個(gè)方法使用快捷鍵就可以直接跳轉(zhuǎn)到 AbstractBeanDefinition 抽象類中對(duì)應(yīng)的實(shí)現(xiàn)方法。
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement {
@Nullable
String getBeanClassName();
......
}
如果對(duì)應(yīng)的方法/類有多個(gè)實(shí)現(xiàn)類的話,IDEA 會(huì)彈出一個(gè)選擇框讓你選擇。
比如 BeanDefinition 接口的 getParentName() 方法就有多個(gè)不同的實(shí)現(xiàn)。

查看方法被使用的情況
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ???? | Alt + F7 |
我們可以通過(guò)直接在方法名上使用快捷鍵 Alt + F7 來(lái)查看這個(gè)方法在哪些地方被調(diào)用過(guò)。

查看最近使用的文件
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ????? | Ctrl + E(Win) / Command +E (Mac) |
你可以通過(guò)快捷鍵 Ctrl + E(Win) / Command +E (Mac)來(lái)顯示 IDEA 最近使用的一些文件。

查看圖表形式的類繼承鏈
| 使用頻率 | 相關(guān)快捷鍵 |
|---|---|
| ???? | 相關(guān)快捷鍵較多,不建議記 |
點(diǎn)擊類名 右鍵 ,選擇 Shw Diagrams 即可查看圖表形式的類繼承鏈。

你還可以對(duì)圖表進(jìn)行一些操作。比如,你可以點(diǎn)擊圖表中具體的類 右鍵,然后選擇顯示它的實(shí)現(xiàn)類或者父類。

再比如你還可以選擇是否顯示類中的屬性、方法、內(nèi)部類等等信息。

如果你想跳轉(zhuǎn)到對(duì)應(yīng)類的源碼的話,直接點(diǎn)擊圖表中具體的類 右鍵 ,然后選擇 Jump to Source 。

插件推薦
一鍵生成方法的序列圖
序列圖(Sequence Diagram),亦稱為循序圖,是一種 UML 行為圖。表示系統(tǒng)執(zhí)行某個(gè)方法/操作(如登錄操作)時(shí),對(duì)象之間的順序調(diào)用關(guān)系。
這個(gè)順序調(diào)用關(guān)系可以這樣理解:你需要執(zhí)行系統(tǒng)中某個(gè)對(duì)象 a 提供的方法/操作 login(登錄),但是這個(gè)對(duì)象又依賴了對(duì)象 b 提供的方法 getUser(獲取用戶)。因此,這里就有了 a -> b 調(diào)用關(guān)系之說(shuō)。
我們可以通過(guò) SequenceDiagram 這個(gè)插件一鍵生成方法的序列圖。
如果你因?yàn)榫W(wǎng)絡(luò)問(wèn)題沒(méi)辦法使用 IDEA 自帶的插件市場(chǎng)的話,也可以通過(guò) IDEA 插件市場(chǎng)的官網(wǎng)手動(dòng)下載安裝。

如何使用呢?
1、選中方法名(注意不要選類名),然后點(diǎn)擊鼠標(biāo)右鍵,選擇 Sequence Diagram 選項(xiàng)即可!

2、配置生成的序列圖的一些基本的參數(shù)比如調(diào)用深度之后,我們點(diǎn)擊 ok 即可!

3、你還可以通過(guò)生成的時(shí)序圖來(lái)定位到相關(guān)的代碼,這對(duì)于我們閱讀源碼的時(shí)候尤其有幫助!

4、時(shí)序圖生成完成之后,你還可以選擇將其導(dǎo)出為圖片。

相關(guān)閱讀:《IDEA一鍵生成方法的序列圖神操作》。
項(xiàng)目代碼統(tǒng)計(jì)
為了快速分析項(xiàng)目情況,我們可以對(duì)項(xiàng)目的 代碼的總行數(shù)、單個(gè)文件的代碼行數(shù)、注釋行數(shù)等信息進(jìn)行統(tǒng)計(jì)。
Statistic 這個(gè)插件來(lái)幫助我們實(shí)現(xiàn)這一需求。

有了這個(gè)插件之后你可以非常直觀地看到你的項(xiàng)目中所有類型的文件的信息比如數(shù)量、大小等等,可以幫助你更好地了解你們的項(xiàng)目。

你還可以使用它看所有類的總行數(shù)、有效代碼行數(shù)、注釋行數(shù)、以及有效代碼比重等等這些東西。

如果,你擔(dān)心插件過(guò)多影響 IDEA 速度的話,可以只在有代碼統(tǒng)計(jì)需求的時(shí)候開(kāi)啟這個(gè)插件,其他時(shí)間禁用它就完事了!
相關(guān)閱讀:《IDEA插件Statistic統(tǒng)計(jì)代碼快速分辨爛項(xiàng)目》
以上就是IDEA高效查看源碼的快捷鍵及小技巧的詳細(xì)內(nèi)容,更多關(guān)于IDEA看源碼快捷鍵技巧的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring AOP的幾種實(shí)現(xiàn)方式總結(jié)
本篇文章主要介紹了Spring AOP的幾種實(shí)現(xiàn)方式總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Java中各類日期和時(shí)間轉(zhuǎn)換超詳析總結(jié)(Date和LocalDateTime相互轉(zhuǎn)換等)
這篇文章主要介紹了Java中日期和時(shí)間處理的幾個(gè)階段,包括java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp、java.util.Calendar和java.util.GregorianCalendar等類,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Java Jmeter全局變量設(shè)置過(guò)程圖解
這篇文章主要介紹了Java Jmeter全局變量設(shè)置過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
springboot驗(yàn)證碼的生成與驗(yàn)證的兩種方法
本文主要介紹了springboot驗(yàn)證碼的生成與驗(yàn)證的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
使用idea開(kāi)發(fā)javaWeb應(yīng)用程序的思路(實(shí)現(xiàn)用戶的增刪改查)
這篇文章主要介紹了使用idea開(kāi)發(fā)javaWeb應(yīng)用程序的思路(實(shí)現(xiàn)用戶的增刪改查),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Java如何利用return結(jié)束方法調(diào)用
這篇文章主要介紹了Java如何利用return結(jié)束方法調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
詳解Spring Cloud Config采用Git存儲(chǔ)時(shí)兩種常用的配置策略
這篇文章主要介紹了詳解Spring Cloud Config采用Git存儲(chǔ)時(shí)兩種常用的配置策略,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

