# Java 八種基本資料類型總結
基本資料類型:byte short int long, double float char boolean
基本資料類型 | 名稱 | 類型 | 占用空間 | 取值範圍 |
---|---|---|---|---|
byte | 位元組 | 有符号整型 | 1位元組 | -2^7(-128) <= byte <= 2^7-1(127) |
short | 短整數 | 有符号整型 | 2位元組 | -2^15 <= short <= 2^15-1 |
int | 整數 | 有符号整型 | 4位元組 | -2^31 <= int <= 2^31-1 |
long | 長整數 | 有符号整型 | 8位元組 | -2^63 <= long <= 2^63-1 |
double | 雙精度浮點數 | 浮點型 | 8位元組 | -2^1024 <= double <= 2^1024 |
float | 浮點數 | 浮點型 | 4位元組 | -2^128 <= float <= 2^128 |
char | 字元 | 無符号整型 | 2位元組 | 2^0 <= char <= 2^15 |
boolean | 布爾 | 布爾型 | 1位元組 | true or false |
基本資料類型注意事項:
1、未帶有字元字尾辨別的整數預設為int類型;未帶有字元字尾辨別的浮點數預設為double類型;
2、如果一個整數的值超出了int類型能夠表示的範圍,則必須增加字尾“L”(不區分大小寫,建議用大寫,因為小寫的L與阿拉伯數字1很容易混淆),表示為long型;
3、帶有“F”(不區分大小寫)字尾的整數和浮點數都是float類型的;帶有“D”(不區分大小寫)字尾的整數和浮點數都是double類型的;
4、編譯器會在編譯期對byte、short、int、long、float、double、char型變量的值進行檢查,如果超出了它們的取值範圍就會報錯;
5、int型值可以賦給所有數值類型的變量;
long型值可以賦給long、float、double類型的變量;
float型值可以賦給float、double類型的變量;
double型值隻能賦給double類型變量。
關于取值範圍:
java中用補碼表示二進制數,補碼的最高位是符号位,最高位為“0”表示正數,最高位為“1”表示負數。
正數補碼為其本身;
負數補碼為其絕對值各位取反加1。
例如:
+21,其二進制表示形式是00010101,則其補碼同樣為00010101;
-21,按照概念其絕對值為00010101,各位取反為11101010,再加1為11101011,即-21的二進制表示形式為11101011。
byte的取值範圍計算過程:
1、byte為一位元組8位,最高位是符号位,即最大值是01111111,因正數的補碼是其本身,即此正數為01111111,十進制表示形式為127;
2、最大正數是01111111,那麼最小負是10000000(最大的負數是11111111,即-1);
3、10000000是最小負數的補碼表示形式,我們把補碼計算步驟倒過來 就即可,10000000減1得01111111然後取反10000000。
因為負數的補碼是其絕對值取反,即10000000為最小負數的絕對值,而10000000的十進制表示是128,是以最小負數是-128;
4、由此可以得出byte的取值範圍是-128到+127。
ps:各個類型取值範圍的計算方法與此大緻相同,感興趣的同學可以自己試着計算。