變量是內存區域的別名,包含名稱(標識符)、類型(決定佔用空間與操作集合)、值(可變)。Java 為強類型語言,變量聲明後類型固定。
class, int, if, true...)。rose、Rose、ROSE 互不相同。numberOfStudents 優於 n 或 x。i, j, k 循環索引;x, y, z 坐標。row 單行,rows 多行。// 單個聲明
int option;
// 多同類型聲明
double sum, diff, product, quotient;
// 聲明並初始化
int magicNumber = 88;
// 多變量初始化
String greeting = "Hi!", farewell = "Bye!";
規則: 使用前聲明;同一作用域只能聲明一次;聲明後類型不可變。
用 final 修飾,命名全大寫下劃線分隔:final double PI = 3.1415926;。聲明時必須初始化,之後不可修改。
1 + 2 * 3 → 7。variable = expression,右側計算後賦予左側。左側必須為變量。number = 88; // 直接賦值
number = number + 1; // 表達式賦值
// 8 = number; // 錯誤:字面值不可作左值
| 類型 | 位數 | 範圍 / 精度 | 默認值 |
|---|---|---|---|
| byte | 8 | -128 ~ 127 | 0 |
| short | 16 | -32,768 ~ 32,767 | 0 |
| int | 32 | -2,147,483,648 ~ 2,147,483,647 (~9 位) | 0 |
| long | 64 | -9.22e18 ~ 9.22e18 (~19 位) | 0L |
| float | 32 | 單精度 ~6-7 位小數, ±10^-45 ~ ±10^38 | 0.0f |
| double | 64 | 雙精度 ~15 位小數, ±10^-324 ~ ±10^308 | 0.0d |
| char | 16 | Unicode '\u0000' ~ '\uFFFF' (0 ~ 65535) | '\u0000' |
| boolean | ~1 bit | true / false | false |
int:精確、高效,適合計數/索引。double(默認),float 需加 f 後綴。String(引用類型),單字符用 char。boolean。byte 1 : 00000001
short 1 : 00000000 00000001
int 1 : 00000000 00000000 00000000 00000001
long 1 : 64 位全 0 末位 1
float 1.0: 0 01111111 00000000000000000000000 (IEEE 754)
double 1.0: 0 01111111111 0000... (64 位)
char '1' : 00000000 00110001 (Unicode 49)
String "1": 堆上對象,含 char[]、length、hash 等
場景:Paul 購筆記本,3.2GHz、4GB、500GB、15寸、$1650.45、服務計劃 B、上門服務。
String name = "Paul";
String brand = "abc";
double processorSpeed = 3.2;
int ramGB = 4;
int hddGB = 500;
byte inch = 15;
double price = 1650.45;
char plan = 'B';
boolean onSite = true;
int:123, -456。0:01234 (十進制 668)。0x:0x1ABC (6844)。0b:0b0101_0000_1010 (下劃線分組)。long 後綴 L/l:1234567890123L。double:55.66, -33.44, 1.2e3。float 後綴 f/F:55.66f。'a', '8'。char c = 97; // 'a'。\n 換行(10)、\r 回車(13)、\t 制表(9)、\\\" 雙引號、\\' 單引號、\\\\ 反斜線。\r\n,Unix/Mac \n。"Hello"。"Use \\\" to quote"。仅 true、false。
public class LiteralTest {
public static void main(String[] args) {
String name = "Tan Ah Teck";
char gender = 'm';
boolean married = true;
byte children = 8;
short birthYear = 1945;
int salary = 88000;
long asset = 8234567890L;
double weight = 88.88;
float gpa = 3.88f;
// 輸出驗證...
}
}
'__' (oo) +========\/ ... (含轉義字符)。