Java 提供 8 種基本資料類型,分為四大類:整數型、浮點數型、字元型、布林型。理解其儲存機制、取值範圍與型別轉換規則是 Java 程式設計的基石。
130 十進制 = 00000000 00000000 00000000 10000010 (32位 int)
截取後 8 位 = 10000010
最高位 1 表示負數
補碼還原:取反 01111101 + 1 = 01111110 = 126
結果:-126
0x111 = 16*16 + 16 + 1 = 273
二進制:00000001 00010001
截取後 8 位:00010001 = 17
結果:17
0xFF = 255 = 11111111
最高位 1 為負數
補碼還原:取反 00000000 + 1 = 1
結果:-1
0 開頭,如 0111 = 1*64 + 1*8 + 1 = 730x 開頭,如 0xFF = 255short s = 1; s = s + 1; 編譯錯誤,因 1 為 int,結果為 int 需強制轉型s = (short)(s + 1) 或 s += 1 (隱含強制轉型)L 或 l 後綴:long n = 2147483650Llong m = (long)(2147483647 + 4) 先以 int 運算溢位再轉 long,結果為 -2147483645long m = 2147483647L + 4 = 2147483651f 如 3.14ftrue/false,無具體大小規範byte/short/char → int → long → float → double
// 運算時自動提升至較大類型
int result = 'A' + 1; // char 自動提升為 int
double d = 3.14;
int i = (int) d; // 截斷小數,i = 3
byte b = (byte) 130; // 溢位變為 -126
byte、short、char 參與運算時自動提升為 int| 類型 | 位元數 | 位元組數 | 預設值 | 範圍 |
|---|---|---|---|---|
| byte | 8 | 1 | 0 | -128 ~ 127 |
| short | 16 | 2 | 0 | -32,768 ~ 32,767 |
| int | 32 | 4 | 0 | -2^31 ~ 2^31-1 |
| long | 64 | 8 | 0L | -2^63 ~ 2^63-1 |
| float | 32 | 4 | 0.0f | ±3.4E-38 ~ ±3.4E+38 |
| double | 64 | 8 | 0.0 | ±1.7E-308 ~ ±1.7E+308 |
| char | 16 | 2 | '\u0000' | 0 ~ 65535 |
| boolean | - | - | false | true/false |
int,長整數用 long (加 L 後綴)double,記憶體敏感場合用 float (加 f 後綴)BigDecimal