Java 資料類型分為兩大類:
boolean, char, byte, short, int, long, float, double — 直接儲存值,效能最佳。本章聚焦基本型別;Java 不支援 C/C++ 的指標、結構體、聯集。
123, -456, 0 (十進制);0173 (八進制);0x7B (十六進制)。L/l,如 123L (64 位)。1.23, .123, 123., 1.23e4 (科學記號) — 預設 double (64 位);float 需加 f/F (32 位)。'a', '中' — 16 位 Unicode;轉義序列 \n, \t, \\, \', \"、八進制 \ddd、Unicode \uxxxx。true, false。"Hello" — 實為 String 物件。final 關鍵字final double PI = 3.1415926535;
final int MAX_USERS = 100;
取代 C/C++ #define,具型別安全、作用域限制、除錯可見性。
type identifier [= value] [, identifier [= value] ... ];
camelCase (變數/方法)、UPPER_SNAKE_CASE (常數)。static,全類別可見。catch (Exception e) 中的 e,僅 catch 區塊有效。| 型別 | 位元 | 範圍 | 適用場景 |
|---|---|---|---|
| byte | 8 | -128 ~ 127 | 網路協定解析、二進位檔案處理、大量資料節省記憶體 |
| short | 16 | -32,768 ~ 32,767 | 較少用,強制高位元組在前 (big-endian),跨平台需謹慎 |
| int | 32 | ±2,147,483,647 | 最常用,32/64 位 CPU 均高效 |
| long | 64 | ±9.22×10¹⁸ | 大數運算、時間戳記 (ms)、資料庫主鍵 |
byte b = 100;
short s = 30000;
int i = 2_147_483_647; // Java 7+ 支援底線分隔增進可讀性
long l = 9_223_372_036_854_775_807L;
| 型別 | 位元 | 近似範圍 | 精度 (有效位數) | 建議用途 |
|---|---|---|---|---|
| float | 32 | ±3.4×10⁻³⁸ ~ ±3.4×10³⁸ | 6~7 位 | 記憶體敏感、圖形顯示、單精度科學計算 |
| double | 64 | ±1.7×10⁻³⁰⁸ ~ ±1.7×10³⁰⁸ | 15~16 位 | 預設首選,財務、科學、一般計算 |
float f = 3.14f;
double d = 3.141592653589793;
關鍵差異:Java 無 unsigned 型別;基本型別大小跨平台固定,確保可移植性、健壯性與安全性。
char = 16 位 無號整數,範圍 \u0000 ~ \uFFFF (BMP)。int 或 String 處理)。| 序列 | 含義 |
|---|---|
\b | 退格 (Backspace) |
\t | 水平定位符 (Tab) |
\n | 換行 (Line Feed) |
\r | 歸位 (Carriage Return) |
\" | 雙引號 |
\' | 單引號 |
\\ | 反斜線 |
\ddd | 1~3 位八進制字元碼 |
\uxxxx | 1~4 位十六進制 Unicode 碼點 |
補充:Character 包裝類提供 isDigit(), isLetter(), toUpperCase() 等靜態工具方法。