首頁(yè)常見(jiàn)問(wèn)題正文

Java培訓(xùn):變量的類型轉(zhuǎn)換之自動(dòng)類型轉(zhuǎn)換

更新時(shí)間:2022-10-31 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Java程序中,經(jīng)常需要對(duì)不同類型的數(shù)據(jù)進(jìn)行運(yùn)算,為了解決數(shù)據(jù)類型不一致的問(wèn)題,需要對(duì)數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換。例如,一個(gè)浮點(diǎn)數(shù)和一個(gè)整數(shù)相加,必須先將兩個(gè)數(shù)轉(zhuǎn)換成統(tǒng)一類型。接下來(lái),筆者先來(lái)講解一下什么是自動(dòng)類型轉(zhuǎn)換。

  自動(dòng)類型轉(zhuǎn)換也稱為隱式類型轉(zhuǎn)換,是指兩種數(shù)據(jù)類型在轉(zhuǎn)換的過(guò)程中不需要顯式聲明,由編譯器自動(dòng)完成。自動(dòng)類型轉(zhuǎn)換必須同時(shí)滿足兩個(gè)條件:一是兩種數(shù)據(jù)類型彼此兼容;二是目標(biāo)類型的取值范圍大于源類型的取值范圍。例如,下面的代碼:

byte b = 3;
int x = b;

  上面的代碼中,使用byte類型的變量b為int類型的變量x賦值,由于int類型的取值范圍大于byte類型的取值范圍,編譯器在賦值過(guò)程中不會(huì)丟失數(shù)據(jù),所以編譯器能夠自動(dòng)完成這種轉(zhuǎn)換,在編譯時(shí)不報(bào)告任何錯(cuò)誤。

  除了上述示例中演示的情況,還有很多類型之間可以進(jìn)行自動(dòng)類型轉(zhuǎn)換。下面列出3種可以進(jìn)行自動(dòng)類型轉(zhuǎn)換的情況,具體如下。

  (1)整數(shù)類型之間可以實(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類型的變量。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!