在賦值運(yùn)算或算術(shù)運(yùn)算時(shí)追葡,要求數(shù)據(jù)類型相同赋除,否則就要進(jìn)行類型轉(zhuǎn)換。
轉(zhuǎn)換的方式:
自動(dòng)類型轉(zhuǎn)換(隱式)
強(qiáng)制類型轉(zhuǎn)換(顯示)
基本數(shù)據(jù)類型的轉(zhuǎn)換主要包含:byte初澎、short、int飞蛹、long谤狡、float、double和char卧檐,不包含boolean類型墓懂。
1.自動(dòng)類型轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換)指的是容量小的數(shù)據(jù)類型可以自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類型。
由低字節(jié)向高字節(jié)的轉(zhuǎn)換 byte->short->int->long->float->double霉囚, char –> int
【賦值運(yùn)算中的類型轉(zhuǎn)換案例】
public static void main(String[] args) {
// 把int類型的值賦值給double數(shù)據(jù)類型(符合低字節(jié)向高字節(jié)轉(zhuǎn)換)
double num = 32;
// 把整數(shù)常量賦值給byte捕仔、 short和char類型變量(不符合低字節(jié)向高字節(jié)轉(zhuǎn)換)
byte b = 123;
short s = 123;
byte by = 1234; // 錯(cuò)誤,整數(shù)常量不能操出其類型的表數(shù)范圍
}
把整數(shù)常量(int類型)賦值給byte盈罐、short和char類型變量榜跌,屬于自動(dòng)類型轉(zhuǎn)換的特例,只要不超出其表數(shù)范圍即可盅粪。
算數(shù)運(yùn)算中的類型自動(dòng)轉(zhuǎn)換原則:
如果兩個(gè)操作數(shù)其中有一個(gè)是double類型钓葫,另一個(gè)操作就會(huì)轉(zhuǎn)換為double類型。
否則票顾,如果其中一個(gè)操作數(shù)是float類型础浮,另一個(gè)將會(huì)轉(zhuǎn)換為float類型。
否則奠骄,如果其中一個(gè)操作數(shù)是long類型豆同,另一個(gè)會(huì)轉(zhuǎn)換為long類型。
否則含鳞,兩個(gè)操作數(shù)都轉(zhuǎn)換為int類型影锈。
【算數(shù)運(yùn)算中的類型轉(zhuǎn)換案例】
public static void main(String[] args) {
int num1 = 5; // int類型
double num2 = 7.34; // double類型
// 此處的num1會(huì)被提升為double類型
double sum = num1 + num2; // num1和num2的和為double類型
}
【常見面試題】
byte b1 = 11; byte b2 = 12;byte sum = b1 + b2; 和int num1 = 100; int num2 = 300; int sum = num1 + num2;哪一個(gè)正確呢?
請(qǐng)問說出100000L100000100000和100000100000100000的區(qū)別?
int num1 = 90000; int num2 = 90000; int total = num1 * num2; 請(qǐng)問total的結(jié)果是多少鸭廷?
2.強(qiáng)制類型轉(zhuǎn)換
強(qiáng)制類型轉(zhuǎn)換(顯示類型轉(zhuǎn)換)枣抱,主要用于顯式的轉(zhuǎn)換一個(gè)數(shù)值的類型。在有可能丟失信息的情況下進(jìn)行的轉(zhuǎn)換是通過造型來完成的辆床,但可能造成精度降低或溢出沃但。
語法格式:目標(biāo)類型 變量 =****(目標(biāo)類型)源類型變量或常量
【示例】
float a = 123.23f;
byte b = (byte)a; // 注意:強(qiáng)轉(zhuǎn)之后有可能會(huì)丟失精度
System.out.println(b); // 輸出:123
// 注意:原類型數(shù)據(jù)被強(qiáng)轉(zhuǎn)后數(shù)據(jù)是不會(huì)變化。
System.out.println(a); // 輸出:123.23
使用強(qiáng)制類型轉(zhuǎn)換的時(shí)候佛吓,一定要明確需要強(qiáng)轉(zhuǎn)的數(shù)據(jù)宵晚。
ps:如需最新的免費(fèi)文檔資料和教學(xué)視頻,請(qǐng)?zhí)砑観Q群(627407545)領(lǐng)取维雇。