各位小夥伴們大家好,在上一篇文章中,小編介紹的是數據類型的自動轉換,這次小編要介紹的是數據類型的強制轉換。之前小編有講過,如果數據要進行自動類型轉換,就要符合從小到大的規則,如果不符合從小到大的規則,就無法進行自動類型轉換,如果這個時候就需要用到數據類型的強制轉換。
在強制類型轉換中,代碼要需要進行特殊的格式處理,不能自動完成。那麼這個特殊的格式處理是怎樣的呢?現在,小編來告訴大家,這個特殊的處理格式,範圍小的數據類型,範圍小的變量名=(範圍小的類型)原本範圍大的數據。
為了方便大家的理解,小編就在這裡粘代碼吧。
//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當中數據類型的強制轉換還有相關注意事項,小編就先說到這裡,希望這篇文章可以幫到大家,也歡迎各位小夥伴補充糾錯。