日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

findbugs插件_提升编码效率的IntelliJ IDEA必备插件

發布時間:2024/10/8 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 findbugs插件_提升编码效率的IntelliJ IDEA必备插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊藍色“程序職場”關注我喲

加個“星標”,天天和你一起進步

作者 | 房上的貓

來源 |?cnblogs.com/lsy131479/p/9646444.htm

7月是第一個月贈書活動:(1), 每個月分享 , 再看 , 轉發 次數統計最多的獲得書籍一本,目前是自費,以后會慢慢升級贈送的活動.

(2), 另外獲得禮物的小伙伴注意看消息[因為我的公眾號沒有留言功能,這個很扯淡],我會統計好發布一篇文章,還會給你發送后臺消息, 3天領取期限.

首先說一下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狀態,然后就可以自行調試咯:

具體怎么搞,就看你們自己想怎么搞咯,,本博主后期也會發布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

還可以讓其自動修復代碼:

最后祝看完這篇文章的小伙伴收獲滿滿!點個在看吧~

▎好文推薦

點擊?職場我們如何尋找自己的定位(職場)

點擊?沒有資源和運營能力,如何開啟副業之路(副業)

點擊?項目中怎么使用敏捷開發流程(敏捷)

點擊?【程序職場】第一期學習資料(java)

▎我的開源項目

點擊?一點知識學院(Spring boot 開源項目)(技能)

點擊?一Eclipse項目如何導入IDEA正常啟動(案例:一點知識學院)

快加微信(mmlz6879),回復「程序職場」或右下角點擊「撩我? ?->? 加群」拉你進討論群和眾多愛學習的小伙伴一起學習。

轉發至朋友圈,是對我最大的支持。

總結

以上是生活随笔為你收集整理的findbugs插件_提升编码效率的IntelliJ IDEA必备插件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。