java資料型別的強制轉換及相關注意事項
各位小夥伴們大家好,在上一篇文章中,小編介紹的是資料型別的自動轉換,這次小編要介紹的是
資料型別的強制轉換
。之前小編有講過,如果資料要進行
自動型別轉換,就要符合從小到大的規則
,如果不符合從小到大的規則,就無法進行自動型別轉換,如果這個時候就需要用到資料型別的強制轉換。
在強制型別轉換中,
程式碼要需要進行特殊的格式處
理,不能自動完成。那麼這個特殊的格式處理是怎樣的呢?現在,小編來告訴大家,這個特殊的處理格式,
範圍小的資料型別,範圍小的變數名=(範圍小的型別)原本範圍大的資料
。
為了方便大家的理解,小編就在這裡粘程式碼吧。
//long——>int,不符合從小到大的規則
/
/格式:範圍小的型別 範圍小的變數名=(範圍小的型別)原本範圍大的資料;
int num=(int)100L;
System。out。println(num);
關於資料型別的強制轉換,小編就先說到這裡,
大家只要按照格式來進行強制轉換就可以了
。接下來小編要講的是強制型別轉換的一些
注意事項
。
第一
. 強制型別轉換一般不推薦使用,可能會導致精度損失,
資料溢位
。
那麼,什麼是資料溢呢?為了方便大家的理解,小編畫一個圖,來表示一下。
資料溢位
//
long強制轉換成int,輸出結果不一樣
int num2=(int)100000000000000L;/
/資料溢位
System。out。println(num2);
//double-->int
int num3=(int)3。56;//結果為3,
精度損失
System。out。println(num3);
第二
.
byte/short/char這三種類型都可以發生數學運算
,如,加法“+”。
char zifu1=‘A’;//
字元變數
,裡面的大寫字母A
System。out。println(zifu1+1);//A+1=66,執行結果
//A的二進位制數字是65
//
char型別進行加法運算時,會把字元當成一個數字來對待
第三. byte/short/char這三種資料型別在運算時,會被首先提升成int型別,然後計算。
byte資料型別
byte num4=40;//右側數值不可以超過左側資料型別的範圍
byte num5=50;
//byte+byte——>int+int——>int
//
byte在運算時會被首先提升為int,所以在運算的時候就已經是一個int,前面需加一個int
int result1=num4+num5;
System。out。println(result1);
short資料型別
short num6=60;
//byte+byte——>int+int——>int
int
result2=num4+num6;//int,同上
System。out。println(result2);
//
int轉short
short num7=50;
//
int也可以強制轉換為short,不過邏輯大小不可以超過short範圍,不然會發生資料溢位
short result3=(short)(num7+num6);
System。out。println(result3);
第四. Boolean型別不能發生資料型別轉換。
關於java當中資料型別的強制轉換還有相關注意事項,小編就先說到這裡,希望這篇文章可以幫到大家,也
歡迎各位小夥伴補充糾錯
。