Java 提供 8 種基本資料類型,分為四大類:
| 類型 | 位元數 | 位元組 | 取值範圍 | 預設值 |
|---|---|---|---|---|
| byte | 8 | 1 | -128 ~ 127 (-2⁷ ~ 2⁷-1) | 0 |
| short | 16 | 2 | -32,768 ~ 32,767 (-2¹⁵ ~ 2¹⁵-1) | 0 |
| int | 32 | 4 | -2,147,483,648 ~ 2,147,483,647 (-2³¹ ~ 2³¹-1) | 0 |
| long | 64 | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (-2⁶³ ~ 2⁶³-1) | 0L |
實務建議:日常開發中 int 最常用,範圍足夠且效能最佳;long 需加 L 後綴(如 35L);byte/short 主要用於記憶體敏感場景或網路協定封包。
| 類型 | 位元數 | 位元組 | 近似範圍 | 精度 | 預設值 |
|---|---|---|---|---|---|
| float | 32 | 4 | ±1.4E-45 ~ ±3.4E+38 | 6~7 位有效數字 | 0.0f |
| double | 64 | 8 | ±4.9E-324 ~ ±1.8E+308 | 15~16 位有效數字 | 0.0 |
注意事項:浮點數無法精確表示所有十進位小數(如 0.1),財務計算請使用 BigDecimal;預設字面值為 double,指定 float 需加 F 後綴(如 3.14F)。
| 類型 | 位元數 | 位元組 | 範圍/值 | 備註 |
|---|---|---|---|---|
| char | 16 | 2 | \u0000 ~ \uFFFF (0 ~ 65,535) | Unicode 編碼,單引號標示:'A'、'中'、'\u0031' |
| boolean | ~1 | 1 | true / false | 無具體大小規範,JVM 實作相關 |
byte → short → int → long → float → double
char → int → long → float → double
注意:byte、short、char 之間無隱式轉換,需強制轉型。
35 → int35L / 35l → long35F / 35f → float35.0 / 35D → double'A' → chartrue/false → booleanchar c = '1';
System.out.println(c); // 輸出:1
System.out.println(c + 0); // 輸出:49 (Unicode 碼值)
char c2 = '\u0031'; // 同 '1'
System.out.println(c2); // 輸出:1