變量是程序中數據存儲空間的抽象表示。就像旅館的房間:
程序運行時,根據類型在內存劃分空間,賦值即將數據存入,調用即取出使用。變量必須先聲明、後賦值、再使用。
| 類型 | 關鍵字 | 位數 | 字節 | 默認值 | 取值範圍/說明 |
|---|---|---|---|---|---|
| 整數 | byte | 8 | 1 | 0 | -128 ~ 127 |
short | 16 | 2 | 0 | -32,768 ~ 32,767 | |
int | 32 | 4 | 0 | -2^31 ~ 2^31-1 (約 ±21 億) | |
long | 64 | 8 | 0L | -2^63 ~ 2^63-1,字面量需加 L | |
| 浮點數 | float | 32 | 4 | 0.0f | 單精度,字面量需加 F |
double | 64 | 8 | 0.0d | 雙精度,默認浮點類型 | |
| 字符 | char | 16 | 2 | '\u0000' | 單字符,Unicode,字面量用單引號 'A' |
| 布爾 | boolean | 1 (JVM 實現為 int) | - | false | true/false,無具體大小規定 |
引用類型:類、接口、數組、String、枚舉等,存儲堆對象地址,默認值 null,佔 4 字節 (開啟壓縮指針)。
double score; // 聲明 String name; // 聲明 char sex; // 聲明 score = 98.5; // 賦值 name = "張三"; sex = '男';
double score = 98.5; String name = "張三"; char sex = '男'; int age = 18; long id = 10000000000L; // 長整型加 L float rate = 3.14f; // 浮點型加 f
int a = 1, b = 2, c; // c 未初始化 String firstName = "John", lastName = "Doe";
| 變量類型 | 聲明位置 | 作用域 | 生命週期 | 默認值 |
|---|---|---|---|---|
| 局部變量 | 方法內/代碼塊內 | 從聲明處到所在塊結束 | 方法調用結束銷毀 | 無,必須顯式初始化 |
| 成員變量(實例變量) | 類中方法外,無 static | 整個類 (受訪問修飾符限制) | 對象創建到 GC 回收 | 有默認值 (0/false/null) |
| 類變量(static 變量) | 類中方法外,有 static | 整個類/全局 | 類加載到類卸載 | 有默認值 |
| 標識符類型 | 命名風格 | 示例 | 反例 |
|---|---|---|---|
| 包名 | 全小寫,多級用點分隔 | com.company.project.module | com.Company.Project |
| 類/接口/枚舉 | UpperCamelCase (大駝峰) | UserService, OrderDTO | userService, ORDER_DTO |
| 方法/局部變量/參數 | lowerCamelCase (小駝峰) | getUserById, userName, maxCount | GetUserById, user_name |
| 常量 (static final) | 全大寫,下劃線分隔 | MAX_RETRY_COUNT, DEFAULT_TIMEOUT | maxRetryCount |
| 抽象類 | 以 Abstract 或 Base 開頭 | AbstractUserService | UserServiceAbstract |
| 異常類 | 以 Exception 結尾 | BusinessException | BusinessError |
| 測試類 | 以 Test 結尾 | UserServiceTest | TestUserService |
int userAge 優於 int a、int ageOfUseri/j/k、坐標 x/y/z、泛型 T/E/K/V 外is/has/can/should 開頭,如 isValid, hasPermissionuserList, orderMap, idSetuserNames 而非 userNameArray// ❌ 錯誤:局部變量未初始化就使用
public void bad() {
int x;
System.out.println(x); // 編譯錯誤
}
// ✅ 正確:聲明即初始化
public void good() {
int x = 0;
System.out.println(x);
}
// ❌ 錯誤:長整型字面量溢出
long id = 10000000000; // 編譯錯誤,視為 int 溢出
// ✅ 正確
long id = 10000000000L;
// ❌ 錯誤:浮點型字面量默認 double
float rate = 3.14; // 編譯錯誤
// ✅ 正確
float rate = 3.14f;
// ✅ 字符轉義
char newline = '\n';
char tab = '\t';
char quote = '\'';
char backslash = '\\';
char unicode = '\u4E2D'; // '中'
變量是程序操作數據的句柄。牢記:八大基本類型大小與默認值、聲明初始化分不開、命名規範是團隊溝通的橋樑。養成「聲明即初始化、見名知意、駝峰統一」習慣,能避免 80% 的低級 Bug,為後續學習運算符、流程控制、面向對象打下堅實基礎。