Findbugs是一个开源的静态分析工具。
你可以通过下列URL,查看它的代码:
http://findbugs.sourceforge.net/
所谓静态分析工具,既不用实际运行程序就可发现可能的问题。
Findbugs检查类或者Jar文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
Findbugs的实现方法:
Findbugs并非分析类文件的形式或结构来确定程序的意图,而是使用模式。
一个典型的可被发现的问题:
Null 指针示例
1 Person person = aMap.get("bob");
2 if (person != null) {
3 person.updateAccessTime();
4 }
5 String name = person.getName();
第5行可能出现null指针错误。
findBugs 利用了 Byte Code Engineering Library,或称为 BCEL,以实现其检测器。