Java 數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換
自動(dòng)轉(zhuǎn)換
自動(dòng)轉(zhuǎn)換適用于低位數(shù)類型向高位數(shù)類型的轉(zhuǎn)換
規(guī)則:
-
對(duì)于算術(shù)運(yùn)算按照下圖所示規(guī)則轉(zhuǎn)換
graph LR A[byte] --> B[short] B --> C[int] C --> D[long] D --> E[float] E --> F[double] G[char] --> C
對(duì)于賦值運(yùn)算:當(dāng)兩種類型兼容時(shí)(如整型和浮點(diǎn)型相互兼容)确虱,低位類型會(huì)自動(dòng)向高位類型轉(zhuǎn)換
布爾類型不能和其他基本數(shù)據(jù)類型相互轉(zhuǎn)換
// 示例:
int x = 100;
long y = x; // 在賦值時(shí)int型自動(dòng)轉(zhuǎn)換為long型
double z = x + y; // 在算術(shù)運(yùn)算時(shí)int型先轉(zhuǎn)換為long型再運(yùn)算,運(yùn)算結(jié)果轉(zhuǎn)換為double型再賦值
強(qiáng)制轉(zhuǎn)換
強(qiáng)制轉(zhuǎn)換適用于高位類型向低位類型的轉(zhuǎn)換。
-
語法:用
()
標(biāo)注需要強(qiáng)制轉(zhuǎn)換成的類型// 示例: int x; x = (int)34.56 + (int)11.2; // x = 45拍柒,丟失精度 byte y = (byte)x;