PMD
检查Java源文件中的潜在问题,主要包括:空try/catch/finally/switch语句块,未使用的局部变量、参数和private方法,空if/while语句,过于复杂的表达式,如不必要的if语句等
FindBugs 检查.class
基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug,主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等
NCSS圈复杂度
主要检查过于复杂和冗余的代码,主要与分支语句(if、else、,switch 等)的个数成正相关。