findbug 介绍、用处及能检测出的一些严重的问题

FindBugs 是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。我们还可以自己配置检查规则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。

我们使用这个工具可以检查出我们项目的潜在问题 或者 已经存在但未发现的bug,他可以提高我们代码的质量,进而可以提升我们的工作效率。

findbugs的错误按严重程序分为4个等级,第一级是最严重的,第一级即最高级别的错误一般建议完全修复。

错误的类型有以下几种: 

1 使用Boolean变量来当成锁的对象,可能引发多个地方共用一个锁,有死锁的风险。

2 对map的使用过程中,传递的参数类型跟定义的不一致。可能是代码写错了,会有逻辑错误的风险。

3 对锁的使用不当,比如用某个对象当成锁对象后,在锁的方法体里对这个对象重新赋值。会有锁不住的风险。

4 比较值是否相等的方法不对,可能导致逻辑错误的风险。

5 抛出的异常跟可能出现的不一致,可能导致没有正确捕获异常并且崩溃。

6 新建了一个线程但是没有执行。

7 赋值时让自己等于自己,可能是代码写错了,会有逻辑错误的风险。

8 switch没有写case。

9 用了一个没被初始化的值,可能会崩溃。


如何安装和使用findbugs戳:http://blog.csdn.net/hnulwt/article/details/42964627

你可能感兴趣的:(android,findbugs)