7 個 IntelliJ IDEA 必備插件,顯著提高編碼效率

  • 首先說一下idea引入外部插件的方式java

  • 用插件編程

    • 1. FindBugs-IDEA數組

    • 2. Maven Helper多線程

    • 3. VisualVM Launcherapp

    • 4. GenerateAllSetterjvm

    • 5. Rainbow Bracketsmaven

    • 6. Translationide

    • 7. P3c工具


首先說一下idea引入外部插件的方式

1.打開settings配置面板性能

2.選擇plugins--》install pluginfrom disk 選擇相應插件包==》點擊ok

最後,「Restart」重啓idea 讓它加載一下新加入的插件!!!

用插件

下面的全部插件都使用上面外部引用方式集成相應的插件包便可

1. FindBugs-IDEA

做用:

檢測代碼中可能的bug及不規範的位置,寫完代碼後檢測下 避免低級bug。

靜態分析工具承諾無需開發人員費勁就能找出代碼中已有的缺陷。固然,若是有多年的編寫經驗,就會知道這些承諾並非必定能兌現。

插件提供地址:

https://plugins.jetbrains.com/plugin/3847-findbugs-idea

成功標誌:

重啓idea後若是插件加載成功左下角出現:

實際應用:

 

 

掃描完成後:

 

 

附錄(網摘):

FindBugs 它用來查找Java代碼中存在的bug。它使用靜態分析方法標識出Java程序中上百種潛在的不一樣類型的錯誤。

FindBugs支持對包級別、項目級別、模塊級別、單個文件級別,以及自定義範圍的Bug分析。

FindBugs:特點是可以檢查出空指針異常這種bug!

使用:右鍵單擊(module、單個文件等)--->在快捷菜單中選擇findbugs便可

附:FindBugs的Bug種類說明

Bad practice 壞的實踐

一些很差的實踐,下面列舉幾個:

  • HE:類定義了equals(),卻沒有hashCode();或類定義了equals(),卻使用Object.hashCode();或類定義了hashCode(),卻沒有equals();或類定義了hashCode(),卻使用Object.equals();類繼承了equals(),卻使用Object.hashCode()。

  • SQL:Statement 的execute方法調用了很是量的字符串;或Prepared Statement是由一個很是量的字符串產生。

  • DE:方法終止或不處理異常,通常狀況下,異常應該被處理或報告,或被方法拋出。
    Malicious code vulnerability 可能受到的惡意攻擊

若是代碼公開,可能受到惡意攻擊的代碼,下面列舉幾個:

  • FI:一個類的finalize()應該是protected,而不是public的。

  • MS:屬性是可變的數組;屬性是可變的Hashtable;屬性應該是package protected的。

類名小寫問題:

Correctness 通常的正確性問題

可能致使錯誤的代碼,下面列舉幾個:

  • NP:空指針被引用;在方法的異常路徑裏,空指針被引用;方法沒有檢查參數是否null;null值產生並被引用;null值產生並在方法的異常路徑被引用;傳給方法一個聲明爲@NonNull的null參數;方法的返回值聲明爲@NonNull實際是null。

  • Nm:類定義了hashcode()方法,但實際上並未覆蓋父類Object的hashCode();類定義了tostring()方法,但實際上並未覆蓋父類Object的toString();很明顯的方法和構造器混淆;方法名容易混淆。

  • SQL:方法嘗試訪問一個Prepared Statement的0索引;方法嘗試訪問一個ResultSet的0索引。

  • UwF:全部的write都把屬性置成null,這樣全部的讀取都是null,這樣這個屬性是否有必要存在;或屬性從沒有被write。

Dodgy 危險的

具備潛在危險的代碼,可能運行期產生錯誤,下面列舉幾個:

  • CI:類聲明爲final但聲明瞭protected的屬性。

  • DLS:對一個本地變量賦值,但卻沒有讀取該本地變量;本地變量賦值成null,卻沒有讀取該本地變量。

  • ICAST:整型數字相乘結果轉化爲長整型數字,應該將整型先轉化爲長整型數字再相乘。

  • INT:不必的整型數字比較,如X <= Integer.MAX_VALUE。

  • NP:對readline()的直接引用,而沒有判斷是否null;對方法調用的直接引用,而方法可能返回null。

  • REC:直接捕獲Exception,而實際上多是RuntimeException。

  • ST:從實例方法裏直接修改類變量,即static屬性。

Performance 性能問題

可能致使性能不佳的代碼,下面列舉幾個:

  • DM:方法調用了低效的Boolean的構造器,而應該用Boolean.valueOf(…);用相似Integer.toString(1) 代替new Integer(1).toString();方法調用了低效的float的構造器,應該用靜態的valueOf方法。

  • SIC:若是一個內部類想在更普遍的地方被引用,它應該聲明爲static。

  • SS:若是一個實例屬性不被讀取,考慮聲明爲static。

  • UrF:若是一個屬性從沒有被read,考慮從類中去掉。

  • UuF:若是一個屬性從沒有被使用,考慮從類中去掉。

Multithreaded correctness 多線程的正確性

多線程編程時可能致使錯誤的代碼,下面列舉幾個:

  • ESync:空的同步塊,很難被正確使用。

  • MWN:錯誤使用notify(),可能致使IllegalMonitorStateException異常;或錯誤的使用wait()。

  • No:使用notify()而不是notifyAll(),只是喚醒一個線程而不是全部等待的線程。

  • SC:構造器調用了Thread.start(),當該類被繼承可能會致使錯誤。

Internationalization 國際化

當對字符串使用upper或lowercase方法,若是是國際的字符串,可能會不恰當的轉換。

2. Maven Helper

做用:

一鍵查看maven依賴,查看衝突的依賴,一鍵進行exclude依賴

對於大型項目 很是方便

插件提供地址:

https://plugins.jetbrains.com/plugin/7179-maven-helper

成功標誌:

重啓idea後若是插件加載成功 打開pom文件左下角出現:

實際應用:

切換Dependency Analyzer試圖便可進行相應操做:

  1. Conflicts(查看衝突)

  2. All Dependencies as List(列表形式查看全部依賴)

  3. All Dependencies as Tree(樹形式查看全部依賴)

選中右鍵就能夠 Exclude 啦,想用1.2就把其餘版本的Exclude掉,想用1.1.3就把其餘版本的Exclude掉,很方便。

3. VisualVM Launcher

做用:

運行java程序的時候啓動visualvm,方便查看jvm的狀況 好比堆內存大小的分配

某個對象佔用了多大的內存,jvm調優必備工具

插件提供地址:

https://plugins.jetbrains.com/plugin/7115-visualvm-launcher

成功標誌:

重啓idea後若是插件加載成功右上角出現:

實際應用:

首先須要一個客戶端(這裏已經爲你們準備好):

連接:https://pan.baidu.com/s/1kIduEykNNrYyZd1CwJpntg
密碼:bxib

將客戶端解壓

打開settings配置面板

配置excutable===》選擇到客戶端的bin目錄的visualvm.exe文件

而後點擊ok。apply應用一下

右鍵使用VM插件啓動

而後會自動加載程序:

可查看jvm狀態,而後就能夠自行調試咯:

具體怎麼搞,就看大家本身想怎麼搞咯。

4. GenerateAllSetter

做用:

一鍵調用一個對象的全部set方法而且賦予默認值 在對象字段多的時候很是方便

插件提供地址:

https://plugins.jetbrains.com/plugin/9360-generateallsetter

實際應用:

經過alt +enter生成一個類全部setter方法的默認值。

當兩個對象轉換器具備相同的字段時,爲它們生成一個set方法;當returnType是List Set Map時生成默認值。

5. Rainbow Brackets

做用:

彩虹顏色的括號 看着很舒服 敲代碼效率變高。清除分清括號個數,防止括號錯亂

插件提供地址:

https://plugins.jetbrains.com/plugin/10080-rainbow-brackets

成功標誌:

重啓idea後若是插件加載成功右下角出現彈出框

實際應用:

最近括號內容高亮效果:ctrl+鼠標右鍵單擊

最近括號內容外暗淡效果:alt+鼠標右鍵單擊

6. Translation

做用:

最好用的翻譯插件,功能很強大,界面很漂亮

特徵:

多個翻譯引擎。多種語言的互譯。

  • 谷歌翻譯。

  • 有道翻譯。

  • 百度翻譯。

  • 文字轉語音。

  • 自動選擇字。

  • 自動分詞。

插件提供地址:

https://plugins.jetbrains.com/plugin/8579-translation

成功標誌:

重啓idea後若是插件加載成功右下角出現:

多翻譯引擎 (可切換)

  • Google翻譯

  • 有道翻譯

  • 百度翻譯

實際應用:

選擇單詞,右鍵:

翻譯加朗讀:

7. P3c

Alibaba Java Coding Guidelines

做用:
阿里巴巴出品的java代碼規範插件,能夠掃描整個項目找到不規範的地方 而且大部分能夠自動修復 。雖然說檢測功能沒有findbugs強大,可是能夠自動修復,阿里巴巴Java編碼指南插件支持。

插件提供地址:

https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines

成功標誌:

點擊上方tools,出現阿里編碼制約

實際應用:

右鍵,點擊編碼制約規範,下方出現:

掃描代碼後,不符合規約的代碼會按Blocker/Critical/Major三個等級顯示在下方面板中

左邊是掃描出的不符合規範的代碼,依次點進去能夠看到是代碼的多少行出現了規約問題以及哪個規約問題,右邊則是規約的詳細描述及實例代碼。

也可快捷鍵:Alt+enter

還可讓其自動修復代碼:

相關文章
相關標籤/搜索