Java中的數(shù)據(jù)類型轉(zhuǎn)換主要有強(qiáng)制類型轉(zhuǎn)換(也叫顯式類型轉(zhuǎn)換)和自動(dòng)類型轉(zhuǎn)換(也叫隱式類型轉(zhuǎn)換)兩種。
強(qiáng)制類型轉(zhuǎn)換,是通過(guò)把一種數(shù)據(jù)類型的值轉(zhuǎn)換成另一種數(shù)據(jù)類型的值來(lái)實(shí)現(xiàn)。在進(jìn)行強(qiáng)制類型轉(zhuǎn)換前,需要用括號(hào)將目標(biāo)數(shù)據(jù)類型括起來(lái),然后將需要轉(zhuǎn)換的值放在括號(hào)內(nèi),如下示例:
double d = 3.14; // 定義一個(gè)double類型的變量d
int i = (int) d; // 將double類型的變量d強(qiáng)制轉(zhuǎn)換成整數(shù)類型,并賦值給變量i
需要注意的是,強(qiáng)制類型轉(zhuǎn)換可能會(huì)造成精度損失或溢出等問(wèn)題,因此在進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí),需要謹(jǐn)慎使用。
自動(dòng)類型轉(zhuǎn)換,是指在程序中,一些低精度類型的值可以直接賦值給高精度類型的變量或表達(dá)式的特定位置,Java編譯器會(huì)自動(dòng)將低精度類型轉(zhuǎn)換成高精度類型。如下示例:
int i = 10; // 定義一個(gè)int類型的變量i
double d = i; // 將int類型的變量i自動(dòng)轉(zhuǎn)換成double類型,并賦值給變量d
在自動(dòng)類型轉(zhuǎn)換時(shí),Java編譯器會(huì)自動(dòng)判斷需要轉(zhuǎn)換的數(shù)據(jù)類型,如果存在類型轉(zhuǎn)換的隱患,會(huì)給出編譯錯(cuò)誤信息。
需要注意的是,自動(dòng)類型轉(zhuǎn)換只能從低精度類型轉(zhuǎn)換成高精度類型,而不能反過(guò)來(lái)。