当前位置: 首页 > 面试题库 >

PMD和FindBugs有什么区别?

蔺沛
2023-03-14
问题内容

比较PMD和CheckStyle有一个问题。但是,我找不到关于PMD和FindBugs之间差异/相似性的详尽分类。我相信一个关键的区别是PMD适用于源代码,而FindBugs适用于编译的字节码文件。但是就功能而言,这应该是一个选择,还是两者相辅相成?


问题答案:

我同时使用。我认为他们是相辅相成的。

正如您所说,PMD在源代码上工作,因此会发现诸如以下问题:违反命名约定,缺少花括号,放错位置的空检查,长参数列表,不必要的构造函数,缺少换行符的中断等。PMD还向您介绍了Cyclomatic复杂的代码,我觉得非常有帮助的(FindBugs的不告诉你的圈复杂度)。

FindBugs适用于字节码。以下是一些问题,FindBugs会发现哪些PMD不会:PMDS()方法在子类型上失败,克隆方法可能返回null,布尔值的引用比较,不可能的转换,32位int偏移量不在0-31范围内,包含自身的集合,equals方法始终返回true,无限循环等。

通常每个人都会发现不同的问题。同时使用。这些工具教会了我很多关于如何编写好的Java代码的知识。



 类似资料:
  • 我使用的是sonarqube community Version6.7.2,我记得,SonarJava插件的目标是用squid规则取代(至少大部分是)Findbugs和PMD规则。当有一个合适的squid规则替换时,这些提供者提供了一个关于规则的信息,但现在我无法找到它,例如,来自findbugs的一些规则与我从squid中知道的其他规则非常相似。 Sonarqube建议只使用squid规则?这些

  • 3)什么是最佳组合规则集。 我们使用的是Sonarquber5.6.3。 最新的checkstyle需要升级到5.6.4,目前只关注PMD、Findbugs和Sonarway插件。 提前致谢

  • 我需要在Eclipse中为一个开发项目使用PMD、Findbugs和Checkstyle。Java6足以使用这些工具吗?或者我需要java 7?

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 最近有人问我关于涵盖 C / C ++和Java的代码库的Coverage Prevent的替代方法。显然,在Java方面,可用的免费工具包括Findbugs(编译代码分析)和PMD(静态代码分析)。它们非常强大,尤其是当您开始研究与IDE的集成时(它们又是免费的)。 但是,当您开始使用各种编译器,体系结构等进入C / C ++领域时,事情变得扑朔迷离。 我已经为Java端提出了多种工