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行不行。