學(xué)會(huì) IDEA 這 30 個(gè)神技,擼碼效率直接起飛!
?? 歡迎準(zhǔn)備 Java 面試以及學(xué)習(xí) Java 的同學(xué)加入我的 知識(shí)星球 ,干貨很多!收費(fèi)雖然是白菜價(jià),但星球里的內(nèi)容或許比你參加上萬的培訓(xùn)班質(zhì)量還要高。
?? 《Java 面試指北》 來啦!這是一份教你如何更高效地準(zhǔn)備面試的小冊(cè),涵蓋常見八股文(系統(tǒng)設(shè)計(jì)、常見框架、分布式、高并發(fā) ......)、優(yōu)質(zhì)面經(jīng)等內(nèi)容。
Java面試指南網(wǎng)站:javaguide.cn
IDEA 作為 Java 開發(fā)工具的后起之秀,幾乎以碾壓之勢把其他對(duì)手甩在了身后,主要原因還是歸功于:好用;雖然有點(diǎn)重,但依舊瑕不掩瑜,內(nèi)置了非常多的功能,大大提高了日常的開發(fā)效率。
我在公眾號(hào)也發(fā)了一系列關(guān)于 IDEA 的文章:IDEA 高效使用指南。

下面匯總了常用的 30 個(gè) IDEA 使用小技巧,讓你的擼碼效率直接起飛...
查看代碼歷史版本 調(diào)整 idea 的虛擬內(nèi)存: idea 設(shè)置成 eclipse 的快捷鍵 設(shè)置提示詞忽略大小寫 關(guān)閉代碼檢查 設(shè)置文檔注釋模板 顯示方法分隔符 設(shè)置多行 tab 快速匹配方法的大括號(hào)位置 代碼結(jié)尾補(bǔ)全 模糊搜索方法 預(yù)覽某個(gè)類的代碼 查看方法在哪里被調(diào)用 代碼模板(代碼快捷鍵) 自動(dòng)導(dǎo)包、自動(dòng)移除沒用的包 Tabnine 插件: 基于 AI 的代碼提示 快速查看類、字段的注釋 括號(hào)顏色區(qū)分 微服務(wù)項(xiàng)目中 將不同項(xiàng)目添加到同一個(gè)啟動(dòng)窗口 idea 全局設(shè)置 (打開新窗口的設(shè)置) java mapper 層代碼文件和 mapper.xml 文件相互跳轉(zhuǎn) 設(shè)置 idea 背景圖片 maven tree (查看 maven jar 包依賴關(guān)系) 快捷鍵切換回上一個(gè)點(diǎn)擊開的 tab idea 自帶的 ssh 連接工具 代碼調(diào)用鏈路圖插件 獲取當(dāng)前線程 dump idea 同個(gè)項(xiàng)目不同端口多開
注意:不同 idea 版本菜單、目錄可能有細(xì)微差別,自己稍加分析都能找到
1.查看代碼歷史版本
鼠標(biāo)在需要查看的 Java 類 右鍵 找到Local History >> Show History 點(diǎn)開即可看到歷史版本,常用于自己忘記代碼改了哪些內(nèi)容 或需要恢復(fù)至某個(gè)版本 (注意 只能看近期修改 太久了也是看不到的)

2. 調(diào)整 idea 的虛擬內(nèi)存:
盡管本質(zhì)都是去改變 .vmoptions 配置文件,但推薦使用Change Memory Settings去調(diào)整,選擇Edit Custom VM Options 或者在本地磁盤目錄更改,通過某些方法破解的 idea 很可能造成 idea 打不開的情況

3. idea 設(shè)置成 eclipse 的快捷鍵
這對(duì) eclipse 轉(zhuǎn) idea 的開發(fā)人員來說 非常友好,這樣不需要記兩套快捷鍵

4. 設(shè)置提示詞忽略大小寫
把這個(gè)勾去掉,(有的 idea 版本是選擇選項(xiàng) 選擇 none 即可),例如 String 輸入 string 、String 都可以提示

5. 關(guān)閉代碼檢查
與 eclipse 類似,idea 也可以自己關(guān)閉代碼檢查 減少資源使用,但不推薦全部關(guān)閉,(是大佬當(dāng)我沒說),把我們項(xiàng)目中不會(huì)使用到的關(guān)閉就好了

6. 設(shè)置文檔注釋模板
文檔注釋快捷鍵及模板
https://blog.csdn.net/qq_36268103/article/details/108027486
7.顯示方法分隔符
方便查看方法與方法之間的間隔,在代碼不規(guī)范的項(xiàng)目中 很好用!

8.設(shè)置多行 tab
idea 默認(rèn)是選擇顯示單行的,我們把這個(gè)去掉,就可以顯示多行 tab 了,在打開 tab 過多時(shí)的場景非常方便!


8.1 tab 過多會(huì)自動(dòng)關(guān)閉
settings - editor - General - Editor tabs - tab limit 數(shù)值設(shè)大就好了
9. 快速匹配方法的大括號(hào)位置
ctrl+[ ctrl+] 可以快速跳轉(zhuǎn)到方法大括號(hào)的起止位置,配合方法分隔符使用,不怕找不到方法在哪兒分割了
10.代碼結(jié)尾補(bǔ)全
例如一行代碼補(bǔ)全分號(hào),或者是if(xxx) 補(bǔ)全大括號(hào),按ctrl+shift+enter 無需切換鼠標(biāo)光標(biāo),大幅度提升了編碼效率

11.模糊搜索方法
例如 People 類里面的 test 方法,按ctrl+shift+alt+n輸入Peo.te 就可以查到該方法了,如果覺得這個(gè)快捷鍵難記 也可以按ctrl+shift+r (查找某個(gè)文件名的快捷鍵 下圖中的 Files),再手動(dòng)選擇 Symbols

12.預(yù)覽某個(gè)類的代碼
例如我們?cè)?test 類中,有句代碼:People p = new People();我們想稍微查看一下 People 這個(gè)類,但是 tab 已經(jīng)夠多了,ctrl+alt+b會(huì)打開新的標(biāo)簽,標(biāo)簽多了就混亂了,尤其一堆命名類似的 tab,這時(shí)候我們可以按ctrl+shift+i 實(shí)現(xiàn)預(yù)覽功能,不占 tab

13.查看方法在哪里被調(diào)用
ctrl+alt+h 可以清楚看到方法在哪些地方被調(diào)用;在知道這個(gè)快捷鍵之前,都是ctrl+h(idea 默認(rèn) ctrl+shift+f)搜索,肉眼找的…

14.代碼模板(代碼快捷鍵)
例如 : eclipse 中的 syso 是打印控制臺(tái)輸出 ,但是 idea 默認(rèn)是 sout , 如果非要改成 syso 可以在Postfix Completion里面設(shè)置,類似的 fori 等都是在里面設(shè)置

15.自動(dòng)導(dǎo)包、自動(dòng)移除沒用的包

16.Tabnine 插件: 基于 AI 的代碼提示
Tabnine 這個(gè)插件用于智能代碼補(bǔ)全,它基于數(shù)百萬 Java 程序,能夠根據(jù)程序上下文提示補(bǔ)全代碼。Tabnine 和 IDEA 自帶的智能提示兩者互補(bǔ)。
如果你覺得 IDEA 插件安裝的太多比較卡頓的話,不用擔(dān)心!Tabnine 插件還有一個(gè)對(duì)應(yīng)的在線網(wǎng)站,在這個(gè)網(wǎng)站上你可以根據(jù)代碼關(guān)鍵字搜索相關(guān)代碼示例,非常不錯(cuò)!網(wǎng)站地址: https://www.tabnine.com/ 。

17. 快速查看類、字段的注釋
這是一個(gè)很有用的小技巧 按 F2 可以快速查看某個(gè)類或某個(gè)字段的文檔注釋 ;基于這點(diǎn) 其它 IDE 應(yīng)該也是可以快速查看文檔注釋內(nèi)容 不僅僅是 idea 特性,這也是為什么阿里編碼規(guī)范里面會(huì)明確聲明實(shí)體類字段需要用文檔注釋 而不能使用雙斜杠// 注釋 ,還記得剛看到這個(gè)規(guī)范的時(shí)候 很不理解 特地去百度 看到有人說就是個(gè)習(xí)慣問題 很顯然不能說服人,直到發(fā)現(xiàn) F2 可以快速查看之后 恍然大悟!
18. 括號(hào)顏色區(qū)分
Rainbow Brackets 插件 成對(duì)的括號(hào)用相同的顏色表示出來了

19. 微服務(wù)項(xiàng)目中 將不同項(xiàng)目添加到同一個(gè)啟動(dòng)窗口

步驟:View ——>Tool Windows ——> services ——>add services

20. idea 全局設(shè)置 (打開新窗口的設(shè)置)
例如我們打開新窗口時(shí),maven 配置會(huì)恢復(fù) 這時(shí)就需要對(duì)打開新窗口的設(shè)置進(jìn)行修改 達(dá)到一個(gè)全局的目的。

在低版本 idea 中 也是在 File 下 例如 idea2018 是叫other settings
21. java mapper 層代碼文件和 mapper.xml 文件相互跳轉(zhuǎn)
Free MyBatis plugin 插件
點(diǎn)擊綠色箭頭可以直接跳轉(zhuǎn) 非常方便

22. Background Image Plus 插件: 背景圖片設(shè)置
我這里推薦使用國人 Jack Chu 基于 Background Image Plus 開發(fā)的最新版本,適用于 2021.x 版本的 IDEA。
前面幾個(gè)下載量比較高的,目前都還未支持 2021.x 版本的 IDEA。

通過這個(gè)插件,你可以將 IDEA 背景設(shè)置為指定的圖片,支持隨機(jī)背景。
效果圖如下:

如果你想要設(shè)置隨機(jī)背景的話,可以通過 IDEA 設(shè)置頁 Settings -> Appearance & Behaviour -> Background Image Plus 自定義設(shè)置項(xiàng),隨機(jī)顯示目錄下的圖片為背景圖。
23. maven tree (查看 maven jar 包依賴關(guān)系)
如果是使用 mvn dependency:tree 命令 , 結(jié)果是下圖這樣 很不方便查看

我們可以在 idea 右上角點(diǎn)擊這個(gè)ShowDependencies按鈕 以圖片形式展示出來 圖片按住 ctrl 和鼠標(biāo)滑輪 可以放大,這個(gè)在排除依賴沖突 查看 jar 包來源時(shí) 非常好用

有的時(shí)候 可能莫名其妙看不到這個(gè)圖標(biāo) ,我們可以點(diǎn)一下設(shè)置

把這個(gè)勾上,它就能顯示了,等顯示后,再把這個(gè)勾去掉

24. 快捷鍵切換回上一個(gè)點(diǎn)擊開的 tab
當(dāng)我們打開了多個(gè) tab 的時(shí)候 , 想要快速回到上一個(gè)點(diǎn)擊的 tab 中 有的時(shí)候肉眼很難找
我們可以用快捷鍵 alt + ← 鍵 (eclipse 版快捷鍵 idea 默認(rèn)快捷鍵需要自測) ,有的時(shí)候我們?cè)诤竺?tab 編輯了內(nèi)容 按一次可能不夠 需要再多按幾次 ,相應(yīng)的 alt + →切換到下一個(gè)點(diǎn)擊的 tab
常見應(yīng)用場景:debug 發(fā)生類跳轉(zhuǎn)時(shí) 、利用快捷鍵在其它類中創(chuàng)建方法時(shí)
即使兩個(gè) tab 不相鄰 也可以切換回去

25. idea 自帶的 ssh 連接工具
類似的 idea 還有自帶的數(shù)據(jù)庫連接工具 但是視圖界面并不如 Navicat 所以很多人都不選擇用
第一步:配置賬號(hào)密碼

第二步:開啟 ssh 會(huì)話

26. 代碼調(diào)用鏈路圖插件
SequenceDiagram 插件
這其實(shí)是本文第 13 點(diǎn)的上位替代方案,idea 自帶的快捷鍵查看代碼調(diào)用,只是以菜單形式展示,不太直觀,如果是自己寫的代碼或比較規(guī)范的代碼,那用自帶的也就無所謂,如果是比較復(fù)雜的源碼或不規(guī)范的代碼,那使用 SequenceDiagram 會(huì)直觀特別多。

在要查看的 java 文件鼠標(biāo)右鍵,點(diǎn)擊 Sequence Diagram

效果示例:

27. 獲取當(dāng)前線程 dump
在斷點(diǎn)調(diào)試的時(shí)候,我們可以通過點(diǎn)擊下圖紅色箭頭指向的相機(jī)圖標(biāo),獲取當(dāng)前線程的 dump 信息。
這個(gè)功能有什么用呢?我們可以通過線程名,分析當(dāng)前是哪個(gè)線程執(zhí)行的,在多線程環(huán)境下對(duì)代碼運(yùn)行分析起到輔助作用。
比如下圖 1, run()方法是通過 main 主線程執(zhí)行的,只是方法調(diào)用,并沒有啟動(dòng)多線程(這是我們熟知結(jié)論的實(shí)踐證明)

當(dāng)我們把 run 方法改成start()方法時(shí),可以看到是線程 thread0 執(zhí)行的。

28. idea 同個(gè)項(xiàng)目不同端口多開
這是個(gè)非常實(shí)用的功能,可以模擬集群 測試負(fù)載均衡。
此外 在開發(fā)階段也是非常好用,開發(fā)過程中,讓別人直接連自己本地測試 是不是非常方便?
那自己又想打斷點(diǎn)調(diào)試 會(huì)影響別人 怎么辦呢 ?這個(gè)時(shí)候多開的作用就體現(xiàn)出來了!
網(wǎng)上很多方法提到勾選 Allow parallel run (不同版本 idea 名稱不一樣) ,我也親眼見過有老師是可以多開啟動(dòng)的, 但我本地啟動(dòng)發(fā)現(xiàn)每次都會(huì)同時(shí)同端口啟動(dòng)多個(gè),不知道是版本問題還是操作問題,這里我用的是另一種有效的方法:
在 VM options 加上
# 8993是區(qū)別于 application.yml 配置中 port 的另一個(gè)端口,達(dá)到不同端口多開的效果
-Dserver.port=8993

來源:blog.csdn.net/qq_36268103/article/
details/109216520
········· END ··············
?? 歡迎準(zhǔn)備 Java 面試以及學(xué)習(xí) Java 的同學(xué)加入我的知識(shí)星球,干貨很多!收費(fèi)雖然是白菜價(jià),但星球里的內(nèi)容或許比你參加上萬的培訓(xùn)班質(zhì)量還要高。
?? 《Java 面試指北》持續(xù)更新完善中!這是一份教你如何更高效地準(zhǔn)備面試的小冊(cè),涵蓋常見八股文(系統(tǒng)設(shè)計(jì)、常見框架、分布式、高并發(fā) ......)、優(yōu)質(zhì)面經(jīng)等內(nèi)容。
近期文章精選 :
《JavaGuide 面試突擊版》 5.0 最新版下載 Nacos 2.2.0 正式發(fā)布!新特性很香!! 新來了個(gè)同事,設(shè)計(jì)模式用的是真優(yōu)雅呀!代碼如詩!! IntelliJ IDEA 2022.3 發(fā)布,這次不追了。。。 8.8k star,這可能是我見過最強(qiáng)的開源支付系統(tǒng)!! 科大訊飛 Java 后端 SSP,拿下!!
?? 如果本文對(duì)你有幫助的話,歡迎 點(diǎn)贊&在看&分享 ,這對(duì)我繼續(xù)分享&創(chuàng)作優(yōu)質(zhì)文章非常重要。非常感謝!
