一,关于FindBugs
(1) FindBugs 是由马里兰大学提供的一款开源 Java
静态代码分析工具,它检查类或者 JAR
文件,将字节码与一组缺陷模式进行对比以发现可能的问题(先对编译后的class进行扫描,然后进行对比),寻找出真正的缺陷和潜在的性能问题。在开发阶
段和维护阶段都可使用。
现今检测的类型如下:
正确性:如强制类型转换
标准:如某个类实现了equals方法但未实现hashCode方法
多线程:主要在同步和多线程问题
性能:潜在的性能委托
安全:相关
高危:导致Bug的可能性最高
更多的Bug描述:http://findbugs.sourceforge.net/bugDescriptions.html
二,下载FindBugs
(1) 可以在官方网站 http://findbugs.sourceforge.net/downloads.html
下载相应的版本(命令行版本,swing版本,ant版本,eclipse插件版本-离线包和在线更新两种方式)。
三,使用FindBugs
(1) 开发可以使用eclipse插件方式安装好FindBugs,然后在eclipse中的Package Explorer 或者Navigater 里面,右键点击项目,在弹出的右键菜单中即可选中FindBugs运行。
(2) 运行完成后代码中会有相应Bug级别的虫子样式标识(红色图标表示 bug 较为严重,黄色的图标表示 bug 为警告程度),鼠标移动到相应的虫子上,可查看详细描述和建议方案。
(3) 高级运用:在eclipse中的属性配置可以针对不同的项目配置不同的FindBugs属性。
(4) 在ant中也可以配置FindBugs;其他使用如:命令行检查,swing检查等
(4) 在项目中设置自动运行:选中项目-右键-FindBugs-Run automatically
四,检查Bugs
1.找出 hash equals 不匹配
List、Map、Set 等都调用equals() 和 hashCode(),重写对象的 equals() 方法,但是没有重写它的 hashCode 方法,或者相反的情况时。
2.忽略方法返回值
/**
* 对点评内容中的一些对页面有影响的字进行替换
* @param
content
* @return
*/
private
final String convert(final
String content)
{
if
(null
!= content) {
content.replaceAll("\""
, "\\\\\""
).replaceAll("<"
, "<"
).replaceAll(">"
, ">"
);
return
content;
}
return
null
;
}
注:replaceAll基于正则表达式来转换的
3.Null指针
private
void nullPoint()
{
OverrideEquals oe=
oMap.get(“str”)
;
if
(oe!=null
){
oe
.process();
}
System.out
.println(oe.getName());
}
4.初始化之前读取数据
private List<String> strList
;
private
void
readList(String strings)
{
StringTokenizer st=new
StringTokenizer(strings);
while
(st.hasMoreTokens()){
strList
.add(st.nextToken());
}
}
5.使用泛型时如非必要 可以加入:@SuppressWarnings
("rawtypes"
)
更多访问:程序员百味博客 http://www.bywei.cn/view.asp?id=108
分享到:
相关推荐
代码审计工具 Findbugs 自动检查 CheckList 及配置方法
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。我们利用它在myEclipse中的插件来对它所过滤的工程的源代码进行检查。希望在程序员编写代码的过程中,将...
在Myeclipse10中集成代码检测工具-----findBugs 下载这个插件,可以配置好就能够在myeclipse中使用
例如,一个 Hudson 插件可以随时间的推移跟踪 FindBugs 和代码覆盖。它还可以报告测试结果的趋势(来自 JUnit 或 TestNG)以及构建结果和对应的执行时间。 Hudson 需要运行 Java 5。如果需要使用 Hudson 附带的...
Java 项目模板用于配置最重要的静态代码分析工具的示例 Java 项目。 该项目可以导入 IntelliJ 和 Eclipse。 同时将项目配置为Maven项目,这样可以在IntelliJ、Eclipse和Maven 1:1下使用相同的配置。 包括以下要点: ...
通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而...
代码分析工具下面是该项目的代码分析工具:PMD:它用于发现常见的编程漏洞比如未使用的变量,空的catch块,不必要的对象创建等等。请看该项目的PMD的规则集合。./gradlew pmdFindbugs::这个工具使用静态分析,找到...
静态代码分析工具 静态代码分析工具是一个Maven插件,可以执行FindBugs,Checkstyle和PMD的Maven插件,并生成合并的.html报告。 它是专门为openHAB设计的,以遵守定义的编码准则。 该项目包含: src/main/resources/...
Spring BootSwing预订 该项目旨在介绍如何创建和配置Spring Boot + JPA / Hibernate Java Swing应用程序。 该项目使用Java,Spring Boot和... Checkstyle是一种开发工具,可帮助程序员编写符合编码标准的Java代码。Fin
1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。 2. 潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。 3. 糟糕的复杂度分布...
本文以CentOS操作系统为例介绍Sonar的安装配置,以及如何与Jenkins进行集成,通过pmd-cpd、checkstyle、findbugs等工具对代码进行持续审查。Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过...
FindBugs:通过字节码静态分析找出潜在Bug。 PMD:对源代码中不良编程习惯进行分析。 SonarQube:通过插件集成其它分析组件,提供评估最终结果报告。 编译器 创建分析器、解释器和编译器的框架。 ANTLR:功能完备
zxing.java源码解析 java_coder_tool_list Java程序员开发参考资源 java coder tool list 构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置...
在使用Checkstyle或PMD的Maven项目中,该项目通过POM或POM指向的配置信息来配置工具。 另一方面,这些工具的Eclipse插件提供注释和问题编辑时的通知。 因此,这是合乎需要打开的Maven在M2E插件断,接通Eclipse插件...
java恶意代码检测源码 前言 在团队Android项目开发过程中,难免会出现一些比较不容易发现,但是又比较低级的bug。而且因为每个开发人员的编码习惯不同,写出的代码也会有差异。为了保证团队开发中代码的规范以及尽量...
静态代码分析包含Checkstyle,Spotbugs,PMD和CPD,为封装的插件提供了新功能和扩展,使其更易于使用,并以最小的努力获得了更好的结果。 开箱即用,只需应用插件,您将获得: 改善了构建性能。 Spotbug和PMD将...