Java 關鍵字完整分類
關鍵字對編譯器有特殊含義,全部小寫,不可作為變數、方法、類別、包名、參數名稱。
1. 資料類型關鍵字(13個)
- 基本類型:
byte、short、int、long、float、double、char、boolean
- 引用類型相關:
class、interface
- 無返回值:
void
2. 資料類型值關鍵字(3個)
true、false(布林字面值)
null(空引用字面值)
3. 流程控制關鍵字(13個)
- 條件:
if、else、switch、case、default
- 迴圈:
while、do、for、break、continue
- 返回:
return
4. 存取修飾符(4個)
private、protected、public、default(包私有,無關鍵字)
5. 類別/方法/變數修飾符(6個)
abstract、final、static、synchronized、native、strictfp
6. 類別關係關鍵字(2個)
extends(繼承類別/介面)
implements(實現介面)
7. 實例操作關鍵字(5個)
new(建立實例)
this(當前實例引用)
super(父類別引用)
instanceof(型別檢查)
8. 異常處理關鍵字(5個)
try、catch、finally、throw、throws
9. 套件關鍵字(2個)
10. 其他修飾符(5個)
transient(序列化忽略)
volatile(記憶體可見性)
assert(斷言,Java 1.4+)
enum(枚舉,Java 5+)
保留字(無實際功能)
const、goto:為兼容 C/C++ 保留,防止作為標識符使用
Java 標識符命名規範
硬性規則(編譯器強制)
- 不可為關鍵字/保留字
- 僅包含字母、數字(0-9)、底線(_)、美元符號($)
- 首字元不可為數字
- 嚴格區分大小寫(
name ≠ Name)
- 長度無限制(建議不過長)
軟性規範(業界標準/Google Java Style)
| 元素類型 | 命名慣例 | 範例 |
| 套件 | 全小寫,多詞連寫 | com.example.util |
| 類別/介面/枚舉/註解 | PascalCase(大駝峰) | UserService, Runnable |
| 方法/變數/參數 | camelCase(小駝峰) | getUserName(), maxCount |
| 常數 | 全大寫,底線分隔 | MAX_CONNECTIONS, DEFAULT_TIMEOUT |
| 型別參數 | 單一大寫字母 | T, E, K, V |
特殊命名慣例
- 布林變數/方法:
is/has/can/should 開頭(isValid(), hasPermission)
- 建構子:與類別同名
- Getter/Setter:
get/set + 屬性名(布林型 is + 屬性名)
- 集合變數:複數形式(
users, userList)
- Map 變數:
xxxMap 或 xxxByKey(userById)
常見命名陷阱
| 錯誤示例 | 問題 | 修正 |
int 2count | 數字開頭 | int count2 |
class class | 關鍵字衝突 | class Clazz |
String user name | 包含空格 | String userName |
@interface 作為變數 | 關鍵字衝突 | annotation |
$_$ | 雖合法但無語義 | tempValue |
實戰建議
- 見名知意:
calculateTotalPrice() 優於 calc()
- 避免縮寫:
maximum 優於 max(除非領域通用)
- 統一術語:專案內統一
delete/remove/erase
- 使用 IDE 重構:IntelliJ/Eclipse 支援批次重命名,保持一致性
SonarQube/Checkstyle 整合 CI 檢查命名規範