第一范文网 - 专业文章范例文档资料分享平台

Java代码缺陷自动分析工具介绍

来源:用户分享 时间:2021-06-02 本文由余生勿扰 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Java代码缺陷自动分析工具介绍

Java代码缺陷自动分析工具介绍

Java代码缺陷自动分析工具主要有:Findbugs、PMD和CheckStyle工具。这里重点介绍Findbugs的使用,简要提及PMD和CheckStyle工具的使用。

1 FindBugs是什么?

FindBugs 是一个java bytecode静态分析工具,它可以帮助java工程师提高代码质量以及排除隐含的缺陷。

FindBugs检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。

有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。FindBugs不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用 Visitor 模式进行分析(Visitor 模式的更多信息)。

2 FindBugs可以做什么?

FindBugs提供了35个检测器来检测字节码中可能的缺陷。可以做的事情主要有:

2.1 找出 hash equals 不匹配

找与 equals() 和 hashCode() 的实现相关的几个问题。这两个方法非常重要,因为几乎所有基于集合的类---List、Map、Set 等都调用它们。一般来说,这个检测器寻找两种不同类型的问题:

①当一个类重写对象的 equals() 方法,但是没有重写它的 hashCode 方法,或者相反的情况时。

②定义一个 co-variant 版本的 equals() 或 compareTo() 方法。例如, Bob 类定义其 equals() 方法为布尔 equals(Bob) ,它覆盖了对象中定义的 equals() 方法。因为 Java 代码在编译时解析重载方法的方式,在运行时使用的几乎总是在对象中定义的这个版本的方法,而不是在 Bob 中定义的那一个(除非显式将 equals() 方法的参数强制转换为 Bob 类型)。因此,当这个类的一个实例放入到类集合中的任何一个中时,使用的是 Object.equals() 版本的方法,而不是在 Bob 中定义的版本。在这种情况下, Bob 类应当定义一个接受类型为 Object 的参数的 equals() 方法。

2.2 检测:忽略方法返回值

这个检测器查找代码中忽略了不应该忽略的方法返回值的地方。这种情况的一个常

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科Java代码缺陷自动分析工具介绍全文阅读和word下载服务。

Java代码缺陷自动分析工具介绍.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1199294.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top