Java定義的資料型別
一、變數按照資料型別來分:
基本資料型別:
整型:byte \ short \ int \ long
浮點型:float \ double
字元型:char
布林型:boolean
引用資料型別:
類(class)
介面(interface)
陣列(array)
1.整型:byte(1位元組=8bit) \ short(2位元組) \ int(4位元組) \ long(8位元組)
① byte範圍:-128 ~ 127
② 宣告long型變數,必須以"l"或"L"結尾
③ 通常,定義整型變數時,使用int型。
2.浮點型:float(4位元組) \ double(8位元組)
① 浮點型,表示帶小數點的數值
② float表示數值的範圍比long還大
③ 定義float型別變數時,變數要以"f"或"F"結尾
④ 通常,定義浮點型變數時,使用double型。
3.字元型:char (1字元=2位元組)
① 定義char型變數,通常使用一對'',內部只能寫一個字元
② 表示方式:1.宣告一個字元 2.轉義字元 3.直接使用 Unicode 值來表示字元型常量
char c5 = '\n';//換行符
char c6 = '\u0043';//Unicode
4.布林型:boolean
① 只能取兩個值之一:true 、 false
② 常常在條件判斷、迴圈結構中使用
二、變數在類中宣告的位置:成員變數 vs 區域性變數
自動型別提升:
結論:當容量小的資料型別的變數與容量大的資料型別的變數做運算時,結果自動提升為容量大的資料型別。 byte 、char 、short --> int --> long --> float --> double
特別的:當byte、char、short三種類型的變數做運算時,結果為int型
說明:此時的容量大小指的是,表示數的範圍的大和小。比如:float容量要大於long的容量
強制型別轉換:
自動型別提升運算的逆運算。
1.需要使用強轉符:()
2.注意點:強制型別轉換,可能導致精度損失。
double d1 = 12.9;
//精度損失舉例1
int i1 = (int)d1;//強制型別轉換,截斷操作
System.out.println(i1);//12
//精度損失舉例2
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);//-128