intellij idea插件的安裝和使用(三)findbugs插件

3 idea中findbugs插件的安裝和使用

3.1 findbugs的安裝

1)菜單欄點擊file-->settings-->plugins-->install from disk,安裝完成後需要重啟idea

intellij idea插件的安裝和使用(三)findbugs插件

intellij idea插件的安裝和使用(三)findbugs插件

3.2 findbugs的使用

1)先打開其工作欄

intellij idea插件的安裝和使用(三)findbugs插件

簡單說明如下:

第一豎列的紅色圖標是分析當前的這個文件。下面是分析某一個類,鼠標所在的那個類。再往下是某個包,某個模塊,整個項目,所有修改過的文件等等。

第二豎列,則是控制分析結果的展示情況。

示例:點擊第一豎列最上邊那個按鈕(每個按鈕鼠標放上去都會有提示的),會對當前文件進行分析,findbugs將給出bug意見及修復建議

intellij idea插件的安裝和使用(三)findbugs插件

比如單獨分析某個類文件,看代碼裡面的問題。如下圖所示

intellij idea插件的安裝和使用(三)findbugs插件

看它的意思就是說這個示例代碼裡面有一個bug,點開"Performance"之後其實可以看到就是我們的testFindbugs方法中,在循環拼接字符串時,使用了String。

String是不可變類,字符串+運算不是直接將字符串在原對象上進行拼接,而是新產生對象,對應用服務器內存和效率都會帶來一定影響;因此在循環中進行字符串拼接,必須使用StringBuilder.append或StringBuffer.append來替代+字符串運算;所以,還得改。改完後代碼沒有任何提示,這樣的代碼只是說,減少bug的發生概率。但是不是絕對的,但起碼減少部分測試團隊的時間。

修改之後如下findbugs測試如下:

intellij idea插件的安裝和使用(三)findbugs插件

3.2 部分提示的含義

1)->Bad pratice編程的壞習慣

主要是命名問題,比如類名最好以大寫開頭,字符串不要使用等號不等號進行比較,可能會有異常最好用try-catch包裹的代碼,方法有返回值但被忽略等等,

這些如果不想改可以直接忽略.

2)->Malicious code vulnerability 惡意代碼漏洞

主要是一些屬性直接使用public讓別的類來獲取,建議改為private併為其提供get/set方法. 還有一些public的靜態字段,可能會被別的包獲取之類的.

這些也需要根據項目具體情況來,個人意見,在有的不重要類,有時直接公開使用屬性,可能更為便捷.如果你認為這些不需要修改,完全可以忽略.

3)->Dodgy code 糟糕的代碼

比如一個double/float被強制轉換成int/long可能會導致精度損失,一些接近零的浮點數會被直接截斷,事實上我們應該保留.

4)->performance 性能

主要是一些無用的代碼,比如聲明瞭沒有用到的屬性等等。

5)->correctness 代碼的正確性

這一項應該算是最重要的了,主要是沒有對變量進行不為空判定,在特殊情況可能發生空指針異常。


分享到:


相關文章: