SpotBugs是Findbugs的繼任者(Findbugs已經於2016年后不再維護),用於對代碼進行靜態分析,查找相關的漏洞。
目前SpotBugs 3.1.3 自帶檢測器,其中有90余種Bad practice,155余種Correctness,9種Experimental, 2種 Internationalization,17種Malicious code vulnerability,46種Multithreaded correctness,4種 Bogus random noise,37種Performance,11種 Security,87種Dodgy。
- Bad practice 不佳實踐:常見代碼錯誤,用於靜態代碼檢查時進行缺陷模式匹配(如重寫equals但沒重寫
hashCode,或相反情況等) - Correctness 可能導致錯誤的代碼(如空指針引用、無限循環等)
- Experimental 實驗性
- Internationalization 國際化相關問題(如錯誤的字符串轉換等)
- Malicious code vulnerability 可能受到的惡意攻擊(如訪問權限修飾符的定義等)
- Multithreaded correctness 多線程的正確性(如多線程編程時常見的同步,線程調度問題等)
- BogusMultithreaded correctness 多線程的正確性(如多線程編程時常見的同步,線程調度問題等)
- Performance 運行時性能問題(如由變量定義,方法調用導致的代碼低效問題等)
- Security 安全問題(如HTTP,SQL,DB等)
- Dodgy code 導致自身錯誤的代碼(如未確認的強制轉換、冗余的空值檢查等)
注: SpotBugs 需要當前的JDK環境為 1.8以上,但可以對1.0~1.9的代碼來進行檢查。
這些插件可以在 IntelliJ IDEA 里安裝,android studio也可以,不知道eclipse行不行。