1 / 9
文档名称:

FindBugs安装使用说明.doc

格式:doc   大小:61KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

FindBugs安装使用说明.doc

上传人:wxc6688 2020/11/30 文件大小:61 KB

下载得到文件列表

FindBugs安装使用说明.doc

相关文档

文档介绍

文档介绍:Findbugs安装使用说明
 
1  用途
1. FindBugs 是一个java bytecode静态分析工具,它可以帮助java工程师提高代码质量以及排除隐含的缺陷。
例如:未关闭的数据库连接,缺少必要的null check,多余的 null check,多余的if后置条件,相同的条件分支,重复的代码块,错误的使用了"==",建议使用StringBuffer代替字符串连加等等。而且我们还可以自己配置检查规则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。
2. FindBugs检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。
Bad practice 坏的实践
一些不好的实践,下面列举几个:
HE : 类定义了equals() ,却没有hashCode() ;或类定义了equals() ,() ;或类定义了hashCode() ,却没有equals() ;或类定义了hashCode() ,() ;类继承了equals() ,() 。
SQL : Statement 的execute 方法调用了非常量的字符串;或Prepared Statement 是由一个非常量的字符串产生。
DE : 方法终止或不处理异常,一般情况下,异常应该被处理或报告,或被方法抛出。
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 。
Internationalization 国际化
当对字符串使用upper 或lowercase 方法,如果是国际的字符串,可能会不恰当的转换。
 Malicious code vulnerability 可能受到的恶意攻击
如果