PMD is a static rule-set based Java source code analyzer that identifies potential problems like: Possible bugs—Empty try/catch/finally/switch blocks. Dead code—Unused local variables, parameters and private methods. Empty if/while statements. Overcomplicated expressions—Unnecessary if statements, for loops that could be while loops. Suboptimal code—Wasteful String/StringBuffer usage. Classes with high Cyclomatic Complexity measurements.