Java基礎之基本資料型別、封裝型別
基本資料型別有4類8種:
byte、short、int、long、float、double、boolean、char
(在棧中可以直接分配記憶體的資料是基本資料型別)(除此之外都是引用資料型別:資料的引用在棧中,但是它的物件在堆中)
Java為每個原始型別提供了封裝類:Byte、Short、Integer、Long、Float、Double、Boolean、Character
第一類:整形byte、short、int、long
byte(位元組型)大小:1位元組=8位=256個數(-128~127),預設值:0
short(短整型)大小:2位元組=16位 0
int(整數型別)大小:4位元組=32位 0
long(長整形)大小:8位元組=64位 0
Java中預設的整數型別是int,如果定義float型,數值後加l或L。 預設的浮點型是double型,如果定義float型,加f或者F
第二類:浮點型float、double
float(浮點型單精度)大小:4位元組=32位0.0f
double(雙精度型)大小:8位元組=64位0.0d
第三類:邏輯型boolean(true或false)
boolean(邏輯型)大小:1/8位元組=1位 false
第四類:字元型char
char(字元型)大小:2位元組=16位(一個字元能儲存一箇中文漢字)\u0000
資料型別之間的轉換
基本資料型別轉換(由低級別到高級別為
(byte、short、char)---> int ---> long ---> float ---> double
小可轉大,大轉小會失去精度。
低階到高階支援自動型別轉換,高階到低階必須強制型別轉換,包裝類可過渡型別轉換。
(有一個很形象的解釋:假如你下命令,把一杯水倒入一個空桶中,我照著做就可以了。如果你下令,把一桶水倒入一個杯子裡面,我就要警告你,請注意有可能桶裡面的水太多,杯子裝不下。)
資料型別轉換必須滿足如下規則:
-
1. 不能對boolean型別進行型別轉換。
-
2. 不能把物件型別轉換成不相關類的物件。
-
3. 在把容量大的型別轉換為容量小的型別時必須使用強制型別轉換。
-
4. 轉換過程中可能導致溢位或損失精度,例如:
int i =128;byte b =(byte)i;
因為byte型別時8位,最大值為127,所以當強制轉換為int型別值128時候就會導致溢位。
-
5. 浮點數到整數的轉換是通過捨棄小數得到,而不是四捨五入,例如:
(int)23.7==23;(int)-45.89f==-45