1. 程式人生 > >Java語言系列03——基本資料型別

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 27(-128) 271(127) Byte
short 16 215(-32768 ) 2151(37767) Short
int 32 231(-2147483648) 2311(2147483647) Integer
long 64 263(-9223372036854775808) 2631(9223372036854775807) Long
char 16 0 216
1
(65535)
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]