Java語言系列03——基本資料型別
Java語言是靜態型別語言,意味著在編譯時就知道每個變數和表達的型別。
Java語言同時也是強型別語言,意味著變數能儲存的資料型別是有限制的。強型別有助於編譯時的錯誤檢查。
Java語言的資料型別分為兩類:基本型別(primitive type)和引用型別(reference type)。
基本型別
基本型別是是Java預定義好的,通過保留關鍵字來定義。基本型別共有8種。可分為布林型別、整數型別、浮點數型別。
整數型別
整數型別有byte、short、int、long、char 5種。其中char型別有其特殊性,還會有專門章節進行講解。
整數字面量
整數字面量有二進位制(binary)、八進位制(octal)、十進位制(decimal)、十六進位制(hexadecimal)。
- 二進位制,以0B或0b開頭,每位只能取0或1,如0B11,0b11。
- 八進位制,以數字0開頭,各位可取0~7。
- 十進位制:首位可是1~9,其他位是0~9。
- 十六進位制:以0x或0X開頭,各位為0~F。
在此基礎上還可:
- 可選的+或-字首,表示正數和負數。
- 可選的L字尾,表示long型別。(L也可寫成小字字母l,但易和數字1混淆)。
- 可在任意兩個進位制位之間使用下劃線(_)分隔,以便於閱讀。
型別 | 佔用記憶體(bit) | 最小值 | 最大值 | 包裝類 |
---|---|---|---|---|
byte | 8 | Byte | ||
short | 16 | Short | ||
int | 32 | Integer | ||
long | 64 | Long | ||
char | 16 | 0 | Character |
- 所有包裝類中有都有 MIN_VALUE、MAX_VALUE表示該類對應的基本型別的最小值和最大值。還有SIZE表示對應基本型別佔用的記憶體位數。
- 所有基本型別能表示的數值範圍是有限的,如果需要使用任意大小的數字。可使用java.lang.BigInteger。
浮點型別
浮點型別有float和double 2種。
浮點數字面量
浮點數字面量有整數部分、小數點、小數部分、指數部分和型別字尾5個部分。可用十進位制或十六進位制表示。也可有各部分
十進位制浮點數至少有一個數字,可以是整數部分或小數部分。如果只有小數部分,需要以小數點開頭。
在些基礎上還可:
- 可選的指數部分,指數部分以e或E開始,後跟無符號整數。這實際上是10進位制的科學計數法。
- 可選的型別字尾,f和F表示float,d和D表示double,如果不加預設是double。
- 可使用下劃線對數字進行分隔,以方便閱讀。
如:1、0.1、1.1、1 E2、1.1 E-2、1F、1.1E2F
十六進位制浮點數很少使用,所以不作介紹。
型別 | 佔用記憶體(bit) | 包裝類 |
---|---|---|
float | 32 | Float |
double | 64 | Double |
- 這兩個包裝類中有MIN_VALUE、MAX_VALUE、MIN_EXPONENT、MAX_EXPONENT分別表示最小值、最大值、最小指數、最大指數。SIZE表示佔用的記憶體位數。
- 浮點數不可用於禁止再現舍入誤差的計算中(比如金融計算)。如果需要在計算中不含有任何舍入誤差,可以使用java.lang.BigDecimal類。
布林型別
布林型別只有兩個值true和false。
要注意Java中的布林型別不是數字。
字元型別
字元型別的字面量有字元或轉義序列兩種形式。使用英文單引號包圍。
字元字面量只能表示UTF-16中的程式碼單元(code unit),這些程式碼單元的範圍從\u0000到\uffff。
轉義序列
可用的轉義序列有:
\b 退格
\t 水平製表符
\n 換行符
\f 分頁符
\r 回車
\” 雙引號
\’ 單引號
\ 反斜槓
其他八進位制轉義序列,可表示\u0000到\u00ff。具體形式有:\[0-7]、\[0-7][0-7]、\[0-3][0-7][0-7]