更新時間:2022年08月17日17時44分 來源:傳智教育 瀏覽次數(shù):
在程序中,當(dāng)把一種數(shù)據(jù)類型的值賦給另一種數(shù)據(jù)類型的變量時,需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。自動類型轉(zhuǎn)換也叫隱式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型在轉(zhuǎn)換的過程中不需要顯式地進(jìn)行聲明。當(dāng)把一個類型取值范圍小的數(shù)值直接賦給另一個取值范圍大的數(shù)據(jù)類型變量時,系統(tǒng)就會進(jìn)行自動類型轉(zhuǎn)換,否則需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。
Java中的自動類型轉(zhuǎn)換就好比將小瓶中的水倒入到大瓶的換裝過程。我們將小瓶水倒入到大瓶中時,由于小瓶的容量比大瓶的容量小,所以倒入的水永遠(yuǎn)不可能溢出大瓶。同樣,在Java中,將取值范圍小的數(shù)據(jù)類型的變量值賦值給取值范圍大的數(shù)據(jù)類型的變量時,程序也不會出現(xiàn)任何問題。
Java中支持的不同數(shù)據(jù)類型之間的自動轉(zhuǎn)換如圖所示。
從上圖可以看出,Java中取值范圍小的byte、short、char等類型數(shù)據(jù)都可以自動轉(zhuǎn)換為取值范圍大的數(shù)據(jù)類型(如int類型),并最終都可以自動轉(zhuǎn)換為雙精度浮點數(shù)類型。
例如:
byte b=3; int x=b; //程序把byte類型的變量b轉(zhuǎn)換成了int類型,無須特殊聲明 double y=x; //將int類型的變量x轉(zhuǎn)換成double類型,無須特殊聲明