java变换变量赋值_Java变量的类型转换
在程序中,當(dāng)把一種數(shù)據(jù)類型的值賦給另一種數(shù)據(jù)類型的變量時(shí),需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。根據(jù)轉(zhuǎn)換方式的不同,數(shù)據(jù)類型轉(zhuǎn)換可分為兩種:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。自動(dòng)類型轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換也叫隱式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型在轉(zhuǎn)換的過(guò)程中不需要顯式地進(jìn)行聲明。要實(shí)現(xiàn)自動(dòng)類型轉(zhuǎn)換,必須同時(shí)滿足兩個(gè)條件,第一是兩種數(shù)據(jù)類型彼此兼容,第二是目標(biāo)類型的取值范圍大于源類型的取值范圍。例如:byte?b?=?3;
int?x?=?b;?//程序把byte?類型的變量b?轉(zhuǎn)換成了int?類型,無(wú)須特殊聲明
上面的語(yǔ)句中,將byte類型的變量b的值賦給int類型的變量x,由于int類型的取值范圍大于byte類型的取值范圍,編譯器在賦值過(guò)程中不會(huì)造成數(shù)據(jù)丟失,所以編譯器能夠自動(dòng)完成這種轉(zhuǎn)換,在編譯時(shí)不報(bào)告任何錯(cuò)誤。
除了上述示例中演示的情況,還有很多類型之間可以進(jìn)行自動(dòng)類型轉(zhuǎn)換,接下來(lái)就列出3種可以進(jìn)行自動(dòng)類型轉(zhuǎn)換的情況,具體如下:
整數(shù)類型之間可以實(shí)現(xiàn)轉(zhuǎn)換,如byte類型的數(shù)據(jù)可以賦值給short、int、long類型的變量,short、char類型的數(shù)據(jù)可以賦值給int、long類型的變量,int類型的數(shù)據(jù)可以賦值給long類型的變量。
整數(shù)類型轉(zhuǎn)換為float類型,如byte、char、short、int類型的數(shù)據(jù)可以賦值給float類型的變量
其他類型轉(zhuǎn)換為double類型,如byte、char、short、int、long、float類型的數(shù)據(jù)可以賦值給double類型的變量。強(qiáng)制類型轉(zhuǎn)換
強(qiáng)制類型轉(zhuǎn)換也叫顯式類型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類型之間的轉(zhuǎn)換需要進(jìn)行顯式地聲明。當(dāng)兩種類型彼此不兼容,或者目標(biāo)類型取值范圍小于源類型時(shí),自動(dòng)類型轉(zhuǎn)換無(wú)法進(jìn)行,這時(shí)就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。public?class?Example01?{
public?static?void?main(String[]?args)?{
int?num?=?4;
byte?b?=?num;
System.out.println(b);
}
}
編譯程序報(bào)錯(cuò)
出現(xiàn)這樣錯(cuò)誤的原因是將一個(gè)int型的值賦給byte類型的變量b時(shí),int類型的取值范圍大于byte類型的取值范圍,這樣的賦值會(huì)導(dǎo)致數(shù)值溢出,也就是說(shuō)一個(gè)字節(jié)的變量無(wú)法存儲(chǔ)四個(gè)字節(jié)的整數(shù)值。
在這種情況下,就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,具體格式如下:目標(biāo)類型?變量?=?(目標(biāo)類型)值
將例中第4行代碼修改為下面的代碼:byte?b?=?(byte)?num;
再次編譯后,程序不會(huì)報(bào)錯(cuò),運(yùn)行結(jié)果如圖所示。
需要注意的是,在對(duì)變量進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí),會(huì)發(fā)生取值范圍較大的數(shù)據(jù)類型向取值范圍較小的數(shù)據(jù)類型的轉(zhuǎn)換,如將一個(gè)int類型的數(shù)轉(zhuǎn)為byte類型,這樣做極容易造成數(shù)據(jù)精度的丟失。
總結(jié)
以上是生活随笔為你收集整理的java变换变量赋值_Java变量的类型转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS入门-公司通讯录项目(教你一步步完
- 下一篇: java同时满足语句_关于控制语句,下列