| 類別 | 型別 | 位元數 | 位元組數 | 預設值 | 取值範圍 / 說明 |
|---|---|---|---|---|---|
| 整數 | byte | 8 | 1 | 0 | -128 ~ 127 |
| short | 16 | 2 | 0 | -32,768 ~ 32,767 | |
| int | 32 | 4 | 0 | -2,147,483,648 ~ 2,147,483,647 | |
| long | 64 | 8 | 0L | -9.22e18 ~ 9.22e18 | |
| 浮點數 | float | 32 | 4 | 0.0f | 單精度,約 ±3.4e38,尾數 6~7 位有效數字 |
| double | 64 | 8 | 0.0d | 雙精度,約 ±1.7e308,尾數 15 位有效數字 | |
| 字符 | char | 16 | 2 | '\u0000' | 單一 Unicode 字符,0 ~ 65,535 |
| 布林 | boolean | 1 (JVM 實作相關) | - | false | true / false |
byte → short → int → long → float → double
char → int
容量小的型別自動提升為容量大的型別,無資料遺失風險。
double d = 78.9;
int i = (int) d; // i = 78,截斷小數部分,可能精度損失
目標型別容量較小時必須強轉,開發者需自行評估溢位與精度風險。
String 不是基本型別,屬於引用型別(類別)。float 常數需加 F/f 後綴(如 3.14F),否則預視為 double。long 常數建議加 L/l 後綴(如 100L)。