更新時間:2022-08-31 來源:黑馬程序員 瀏覽量:
隱式轉(zhuǎn)換
隱式轉(zhuǎn)換也叫自動類型提升。就是把一個取值范圍小的數(shù)據(jù)或者變量,賦值給另一個取值范圍大的變量。此時不需要我們額外寫代碼單獨實現(xiàn),是程序自動幫我們完成的。簡單來說就是小的給大的,可以直接給。
兩種提升規(guī)則:
取值范圍小的,和取值范圍大的進(jìn)行運算,小的會先提升為大的,再進(jìn)行運算。
byte、short、char三種類型的數(shù)據(jù)在運算的時候,都會直接先提升為int,然后再進(jìn)行運算。
理解隱式轉(zhuǎn)換從大到小的關(guān)系:
byte short int long float double
例如:
java byte b = 100; int i = b;//可以成功賦值
因為byte的取值范圍是小的,int的取值范圍是大的,在底層進(jìn)行了隱式轉(zhuǎn)換,不需要我們額外寫代碼單獨實現(xiàn),是可以直接賦值。
強(qiáng)制轉(zhuǎn)換
如果要把一個取值范圍大的數(shù)據(jù)或者變量賦值給另一個取值范圍小的變量。是不允許直接操作。如果想要直接操作的話,就需要加入強(qiáng)制轉(zhuǎn)換。目標(biāo)數(shù)據(jù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型)被強(qiáng)轉(zhuǎn)的數(shù)據(jù);
總結(jié):寫在小括號中的就是想要轉(zhuǎn)換的類型。強(qiáng)制轉(zhuǎn)換有可能會導(dǎo)致數(shù)據(jù)發(fā)生錯誤。(數(shù)據(jù)的精度丟失)