基本數據類型(8 種)
| 類型 | 位數 | 範圍 | 默認值 | 字面量後綴 |
| byte | 8 | -128 ~ 127 | 0 | - |
| short | 16 | -32,768 ~ 32,767 | 0 | - |
| int | 32 | -2,147,483,648 ~ 2,147,483,647 | 0 | - |
| long | 64 | -9.22e18 ~ 9.22e18 | 0L | L/l |
| float | 32 | IEEE 754 單精度 | 0.0f | F/f |
| double | 64 | IEEE 754 雙精度 | 0.0d | D/d (可省略) |
| boolean | 1 (JVM 實現相關) | true / false | false | - |
| char | 16 | \\u0000 ~ \\uffff (Unicode) | \\u0000 | - |
選型建議:整數首選 int,大數用 long;浮點首選 double,記憶體敏感用 float;金額計算嚴禁用 float/double,請用 BigDecimal。
引用數據類型
- 類、介面、陣列、枚舉、注解。
- 變量存儲物件引用(地址),默認值
null。
String、Integer 等包裝類屬引用類型。
常量
用 final 修飾,命名全大寫下劃線分隔(MAX_COUNT)。
字面量表示
- 十進制:
100
- 八進制:
0144 (前綴 0)
- 十六進制:
0x64 (前綴 0x)
- 二進制 (JDK 7+):
0b1100100
- 字符:
'A'、'\\n'、'\\u0041'
- 字串:
"Hello\\nWorld"
轉義序列
| 序列 | 含義 |
| \\n | 換行 (0x0A) |
| \\r | 回車 (0x0D) |
| \\t | 製表符 |
| \\\" | 雙引號 |
| \\\' | 單引號 |
| \\\\ | 反斜槓 |
變量分類與作用域
| 類型 | 聲明位置 | 生命週期 | 默認值 | 可用修飾符 |
| 局部變量 | 方法/構造器/塊內部 | 方法執行期間 | 無 (必須顯式初始化) | final |
| 實例變量 | 類內部、方法外 | 物件創建到銷毀 | 有 (0/false/null) | 所有訪問修飾符 |
| 類/靜態變量 | 類內部、方法外、static 修飾 | 類載入到卸載 | 有 (0/false/null) | 所有訪問修飾符 |
代碼示範
public class VariableDemo {
// 類變量
private static int classCounter = 0;
public static final String APP_NAME = "MyApp";
// 實例變量
private String name;
private int age = 18; // 直接初始化
public VariableDemo(String name) {
this.name = name;
classCounter++;
int localVar = 100; // 局部變量
System.out.println("建構子局部變量:" + localVar);
}
public static void main(String[] args) {
VariableDemo v1 = new VariableDemo("Alice");
VariableDemo v2 = new VariableDemo("Bob");
System.out.println("實例計數 (類變量):" + classCounter); // 2
System.out.println("常量:" + APP_NAME);
}
}
命名規範
- 類/介面:PascalCase(
UserService)
- 方法/變量:camelCase(
getUserName)
- 常量:UPPER_SNAKE_CASE(
MAX_RETRY_COUNT)
- 包名:全小寫(
com.company.project.module)
總結
- 8 種基本類型有固定大小與範圍,無符號整數不存在。
- 引用類型默認
null,基本類型有確定默認值。
- 局部變量無默認值,使用前必須初始化。
final 讓變量成為常量,編譯期內聯優化。
- 嚴格遵守命名規範,提升代碼可讀性與團隊協作效率。