統一的代碼風格是團隊協作效率的基石。本文依據業界通用規範(Google Java Style、Alibaba Java 開發手冊),將 Java 編碼規範濃縮為 7 大維度 30+ 條核心準則,附違規/合規對比,可直接作為 Checkstyle/SpotBugs 規則配置參考。
| 元素 | 規則 | 正例 | 反例 |
|---|---|---|---|
| 包名 | 全小寫,域名反轉 | com.company.project.module | com.Company.Project |
| 類/介面 | PascalCase,名詞/形容詞 | UserService, Serializable | user_service, Data |
| 方法 | camelCase,動詞開頭 | getUserById, saveOrder | GetUser, doIt |
| 變量 | camelCase,見名知意 | userName, maxRetryCount | a, temp, flag1 |
| 常量 | UPPER_SNAKE_CASE | MAX_CONNECTIONS, DEFAULT_TIMEOUT | maxConnections |
禁用:單字母變量(除迴圈計數器)、拼音命名、中英混雜。
/** 核心職責描述 @author @since */@param @return @throws 全覆蓋,main 方法除外。// 解釋「為什麼」而非「做什麼」;區塊註釋用 /* */。Ctrl+Shift+F 格式化。if (cond)),運算符前後加空格。* 通配,顯式導入;靜態導入僅用於常用工具方法。if/for/while 必須加大括號,哪怕單行。return 不加括號:return value;for 初始化/更新子句變量 ≤ 2 個,複雜邏輯改用迭代器/流。switch 穿透需加 // fall through 註釋。private,提供 getter/setter;避免 protected/默認包可見性。Math.PI),不可用實例訪問。a = b = 1; → 兩行。switch / 策略模式,避免長 if-else 鏈。PreparedStatement 防注入,性能更優。isXxx(),其他用 getXxx();setter 用 setXxx()。private static final int MAX_RETRY = 3;接入 Checkstyle(風格)、SpotBugs(缺陷)、PMD(最佳實踐)至 CI 流水線,配合 IDE 實時提示,讓規範「無感」執行。