FindBugs、PMD和CheckStyle對比
阿新 • • 發佈:2018-12-13
FindBugs、PMD和CheckStyle對比
1. 概要
工具 |
目的 |
檢查項 |
FindBugs 檢查.class |
基於Bug Patterns概念,查詢javabytecode(.class檔案)中的潛在bug |
主要檢查bytecode中的bug patterns,如NullPoint空指標檢查、沒有合理關閉資源、字串相同判斷錯(==,而不是equals)等 |
PMD 檢查原始檔 |
檢查 |
主要包括: 空try/catch/finally/switch語句塊 未使用的區域性變數、引數和private方法 空if/while語句 過於複雜的表示式,如不必要的if語句等 複雜類 |
CheckStyle 檢查原始檔 主要關注格式 |
檢查Java原始檔是否與程式碼規範相符 |
主要包括: Javadoc註釋 命名規範 多餘沒用的Imports Size度量,如過長的方法 缺少必要的空格Whitespace 重複程式碼 |
® 潛在的bug:空的try/catch/finally/switch語句
® 未使用的程式碼:未使用的區域性變數、引數、私有方法等
® 可選的程式碼:String/StringBuffer的濫用
® 複雜的表示式:不必須的if語句、可以使用while迴圈完成的for迴圈
® 重複的程式碼:拷貝/貼上程式碼意味著拷貝/貼上bugs
® 迴圈體建立新物件:儘量不要再for或while迴圈體內例項化一個新物件
@ 資源關閉:Connect,Result,Statement等使用之後確保關閉掉
http://blog.csdn.net/ml5271169588/article/details/6975701