更新時間:2022-10-31 來源:黑馬程序員 瀏覽量:
在Java程序中,經(jīng)常需要對不同類型的數(shù)據(jù)進(jìn)行運算,為了解決數(shù)據(jù)類型不一致的問題,需要對數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換。例如,一個浮點數(shù)和一個整數(shù)相加,必須先將兩個數(shù)轉(zhuǎn)換成統(tǒng)一類型。接下來,筆者先來講解一下什么是自動類型轉(zhuǎn)換。
自動類型轉(zhuǎn)換也稱為隱式類型轉(zhuǎn)換,是指兩種數(shù)據(jù)類型在轉(zhuǎn)換的過程中不需要顯式聲明,由編譯器自動完成。自動類型轉(zhuǎn)換必須同時滿足兩個條件:一是兩種數(shù)據(jù)類型彼此兼容;二是目標(biāo)類型的取值范圍大于源類型的取值范圍。例如,下面的代碼:
byte b = 3; int x = b;
上面的代碼中,使用byte類型的變量b為int類型的變量x賦值,由于int類型的取值范圍大于byte類型的取值范圍,編譯器在賦值過程中不會丟失數(shù)據(jù),所以編譯器能夠自動完成這種轉(zhuǎn)換,在編譯時不報告任何錯誤。
除了上述示例中演示的情況,還有很多類型之間可以進(jìn)行自動類型轉(zhuǎn)換。下面列出3種可以進(jìn)行自動類型轉(zhuǎn)換的情況,具體如下。
(1)整數(shù)類型之間可以實現(xiàn)轉(zhuǎn)換。例如,byte類型的數(shù)據(jù)可以賦值給short、int、long類型的變量;short、char類型的數(shù)據(jù)可以賦值給int、long類型的變量;int類型的數(shù)據(jù)可以賦值給long類型的變量。
(2)整數(shù)類型轉(zhuǎn)換為float類型。例如,byte、char、short、int類型的數(shù)據(jù)可以賦值給float類型的變量。
(3)其他類型轉(zhuǎn)換為double類型。例如,byte、char、short、int、long、float類型的數(shù)據(jù)可以賦值給double類型的變量。