基本型別轉換
一、資料型別
資料型別包括基本資料型別和引用資料型別。
1、基本資料型別有四大類八小種
- 整型:byte(1位元組)、short(2位元組)、int(4位元組)、long(8位元組)
- 浮點型:float(4位元組)、double(8位元組)
- 字元型:char(2位元組)
- 布林型:boolean(1 bit)
2、引用型別
記住,除了基本資料型別,其他都為引用型別。
舉幾個栗子吧,類、介面、陣列......
二、基本資料型別轉換
1、在型別轉換之前,我們首先要清楚基本資料型別的級別(從高到低):
double > float > long > int > byte、short、char
2、轉換分為自動轉換和強制轉換
-
自動轉換
當一種基本資料型別轉換為比它高階的基本資料型別時,計算機可以自動轉換
-
強制轉換
當一種基本資料型別轉換為比它低階的基本資料型別時,需要我們手動進行強制轉換
3、強制轉換要點
-
轉換格式
在高階型別前加小括號,括號內為要轉化的低階型別。
舉栗子說明:
//將double型轉化為int型 int a = 0; double b = 3.11; a = (int) b;
-
應用:多種資料型別參與表示式計算
注:在四大類八小種基本資料型別中,整型、字元型、浮點型都可以參與運算,但唯獨布林型別不可參與運算。
運算過程:
計算機在運算過程中,會找到級別最高的型別,然後將其餘型別全部轉化為當前表示式級別最高的型別,再進行運算。
-
特殊情形一
對於byte、short、char這三類,只要數值在它們可以表示的範圍內,賦值時無需進行轉化。
舉栗子:
分析: 12在byte可表示範圍內,而270不在,又因為整數會預設為int型,int型級別高於byte,因此不強制轉化會出錯!
——————————————————————————————————————————————————————————————————————————————————————————————————————————
接著上面的栗子,看看通過強制轉換的結果是什麼樣子
——————————————————————————————————————————————————————————————————————————————————————————————————————————
有木有發現270變為14了!
接下來,我帶你進行記憶體分析,告訴你why!
-
特殊情形二:double強制轉化為int時,不是四捨五入,而是掉尾巴方法(即直接去掉小數部分)!
舉栗子: