FindBugs解释
FindBugs
是一个静态分析工具,它检查类或者 JAR
文件,将字节码与一组缺陷模式进行对比以发现可能的问题。之所以叫做静态分析工具,是因为它在不实际运行程序的情况对软件进行分析。使用findbugs有很多种方式,从
GUI、从命令行、使用 Ant、作为 Eclipse 插件程序和使用 Maven,甚至作为hudson持续集成的插件。
findbugs自己定义了一系列的检测器,1.3.9版本的检测器有83种Bad practice(不好的习惯),133种Correctness(正确性),2种Experimental(实验性问题),1种 Internationalization(国际化问题),12种Malicious code vulnerability(恶意的代码),41种Multithreaded correctness(线程问题),27种Performance(性能问题),9种Security(安全性问题),62种Dodgy(狡猾的问题)。
可能大家更感兴趣的是它的工作原理,我们可以首先看一下eclipse插件下面的lib包:
其中的bcel.jar和asm-xx.jar都是对java字节码(通过命令javap -c 类名 反编译class文件)的操作,原理都是在类被装载虚拟机之前,动态修改类(可以直接创造类,也就是说不经过java编译器那一步),bcel是apache下面的一个开源项目,而asm是由法国某电信公司的研发工程师负责。
====================================================================================
在公司内部推广findbugs的时候遇到一些阻力,其中有一个很重要的原因就是很多人认为黄色臭虫没有多大用处,为此我历时一个月对公司内部的一些代码进行了解释,大约有50多种,没用弄完,因为工作量实在太大,有些bug我自己都要想半天,还要查找很多资料才能说服别人,文档详见附件,当然都是去掉了公司业务和逻辑的,希望分享出来对有些人有用。
另外,代码质量和重构的分享:
【分享】部门内部《代码质量》培训
【分享】部门内部《重构》培训
- 大小: 4.4 KB
分享到:
相关推荐
《FindBugs反模式》 FindBugs是一款强大的静态代码分析工具,专用于检测Java代码中的潜在错误和不良编程实践。这款工具通过分析字节码而非源代码,能够发现多种类型的常见问题,包括空指针异常、未初始化的变量、...
FindBugs的特色在于其“缺陷模式”(Bug Pattern),这些模式是常见编程错误的标准化表示,可以帮助开发者识别并修复潜在的问题。下面将详细讨论FindBugs的各个方面。 一、概要 FindBugs是一个无需运行程序的静态分析...
1. **广泛覆盖的错误类型**:FindBugs 1.3.9能够检测到多种类型的潜在问题,包括空指针异常、资源泄漏、并发问题、不安全的类型转换等,这些都基于其内置的大量bug模式。 2. **高精度报告**:与其他静态分析工具...
标题中的"findbugs压缩包+findbugs.jar+findbugs-ant.jar"指的是该压缩文件内包含FindBugs的主要库文件`findbugs.jar`,这是执行FindBugs分析的核心组件,它包含了各种检测规则和算法。另外,`findbugs-ant.jar`则是...
FindBugs首先将Java字节码转换为内部数据结构,然后使用一组复杂的静态分析算法扫描这些数据结构,寻找可能的问题模式。由于是静态分析,FindBugs可以在不运行代码的情况下进行检查,避免了因运行时环境差异导致的...
FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs既提供可视化 UI 界面,同时也可以作为 Eclipse插件使用。文本将主要使用将 FindBugs作为 ...
FindBugs是由University of Maryland开发的一款开源工具,它主要针对Java字节码进行分析,识别出可能存在的错误模式。这些错误模式包括但不限于空指针异常、资源未关闭、并发问题、可能的算术溢出等。FindBugs的工作...
FindBugs是一款非常知名的静态代码分析工具,它主要用于在Java代码中发现潜在的错误和缺陷。Eclipse是一款广泛使用的集成开发环境(IDE),对于Java开发者来说尤其重要。将FindBugs集成到Eclipse中,可以帮助开发者...
在20081008版本中,FindBugs包含了丰富的Bug模式库,这些模式涵盖了常见的编程错误,如空指针异常、资源未关闭、并发问题等。 源代码的结构分析是理解FindBugs的关键。在提供的压缩包中,"eclipsePlugin-1.3.6....
**Findbugs在Ant下的配置方法** FindBugs是一款开源的静态代码分析工具,主要用于检测Java代码中的潜在错误、坏味道和安全漏洞。它通过分析字节码而非源代码,能够发现许多编译器无法捕获的问题。在Ant构建环境中...
- **增强的错误检测**:FindBugs 2.0相比早期版本增加了更多的错误模式,可以检测出更多类型的潜在问题。 - **更高的准确性**:通过对字节码的深度分析,减少了误报的可能性,提高了报告的准确性。 - **性能优化*...
通过检查类文件和JAR包,FindBugs与一系列预定义的缺陷模式进行匹配,从而找出可能存在的问题。这种静态分析方法无需实际运行程序,可以提前识别出许多潜在的错误。 **安装FindBugs插件** 在Eclipse环境中安装...
它能够识别出近400种不同类型的错误模式,这些模式被分类为不同的警告级别,包括"可疑"、"可能"和"肯定"。 2. **集成开发环境(IDE)支持**:edu.umd.cs.findbugs.plugin.eclipse_1.3.8.20090315这个文件名表明该...
FindBugs的工作原理是通过分析字节码,识别出可能的错误模式。例如,它会检查是否存在未初始化的字段、是否有可能抛出但未被捕获的异常、是否有多余的对象创建等。每个检测到的问题都被赋予一个等级,如"Error"、...
在提供的"findbugs_bug描述的中英文对照.xls"文件中,你可以找到所有bug模式的详细解释,包括它们的英文名称、中文翻译以及可能出现的问题类型和解决方案。这对于理解和解决findBugs报告中的问题非常有帮助。 **与...
FindBugs 和 Apache Ant 都是Java开发中常用的工具,前者是用于检测代码质量问题的静态分析工具,后者则是一个构建自动化工具。本文将详细介绍如何将 FindBugs 与 Ant 结合,以生成 HTML 报告,帮助开发者更好地理解...
3. **使用模式**:FindBugs通常采用访问者模式(Visitor Pattern)进行分析,这种设计模式使得工具能够在不影响原有代码结构的基础上添加新的分析逻辑。 #### 三、FindBugs的安装与配置 FindBugs的最新版本为1.3.9,...
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。不是通过分析类文件的形式或结构来确定...