
認(rèn)賦值。Java 中的類型轉(zhuǎn)換分成:強(qiáng)制類型轉(zhuǎn)換、自動(dòng)升級(jí)類型轉(zhuǎn)換和后面將會(huì)學(xué)習(xí)到的

向上造型。
1:強(qiáng)制類型轉(zhuǎn)換
把某種類型強(qiáng)制轉(zhuǎn)換成另外一種類型就叫做強(qiáng)制類型轉(zhuǎn)換。
例如,可以將一個(gè) long 值“擠壓”到一個(gè) int 變量中。顯式轉(zhuǎn)型做法如下:
long bigValue = 99L;
int squashed = (int)(bigValue);
在上述程序中,期待的目標(biāo)類型被放置在圓括號(hào)中,并被當(dāng)作表達(dá)式的前綴,該表達(dá)式
必須被更改。一般來講,建議用圓括號(hào)將需要轉(zhuǎn)型的全部表達(dá)式封閉。否則,轉(zhuǎn)型操作的優(yōu)
先級(jí)可能引起問題。
注意: 強(qiáng)制類型轉(zhuǎn)換只能用在原本就是某個(gè)類型, 但是被表示成了另外一種類型的時(shí)候,
可以把它強(qiáng)制轉(zhuǎn)換回來。強(qiáng)制轉(zhuǎn)換并不能在任意的類型間進(jìn)行轉(zhuǎn)換。
比如上面的例子:99 這個(gè)數(shù)本來就是一個(gè) int 的數(shù),但是它通過在后面添加 L 來表示
成了一個(gè) long 型的值,所以它才能夠通過強(qiáng)制轉(zhuǎn)換來轉(zhuǎn)換回 int 類型。
2:升級(jí)和表達(dá)式的類型轉(zhuǎn)換
當(dāng)沒有信息丟失時(shí),變量可被自動(dòng)升級(jí)為一個(gè)較長的形式(如:int 至 long 的升級(jí))
long bigval = 6; // 6 是 int 類型, OK
int smallval = 99L; // 99L 是 long 型, 非法
double z = 12.414F; // 12.414F 是 float 型, OK
float z1 = 12.414; // 12.414 是 double 型, 非法
一般來講,如果變量類型至少和表達(dá)式類型一樣大(位數(shù)相同) ,則你可認(rèn)為表達(dá)式是
賦值兼容的。
3:表達(dá)式的升級(jí)類型轉(zhuǎn)換
對(duì) + 運(yùn)算符來說,當(dāng)兩個(gè)操作數(shù)是原始數(shù)據(jù)類型時(shí),其結(jié)果至少有一個(gè) int,并且有
一個(gè)通過提升操作數(shù)到結(jié)果類型, 或通過提升結(jié)果至一個(gè)較寬類型操作數(shù)而計(jì)算的值, 這可能會(huì)導(dǎo)致溢出或精度丟失。例如:
short a,b,c
a=1;
b=2;
c= a+b;
上述程序會(huì)出錯(cuò)是因?yàn)樵趫?zhí)行“+”操作前,a 和 b 會(huì)從 short 提升至 int,兩個(gè) int
相加的結(jié)果也是 int,然后把一個(gè) int 的值賦值給 c,但是 c 是 short 型的,所以出錯(cuò)。如
果 c 被聲明為一個(gè) int,或按如下操作進(jìn)行類型轉(zhuǎn)換:
c = (short)(a+b);
則上述代碼將會(huì)成功通過。
尤其在四則運(yùn)算表達(dá)式里面, 如果不強(qiáng)制進(jìn)行類型轉(zhuǎn)換, 那么運(yùn)算最后的結(jié)果就是精度
高的那個(gè)操作數(shù)決定的。比如:
3*5.0 的結(jié)果就是 double 型的,應(yīng)該定義成為:double a = 3 * 5.0;
4:自動(dòng)包裝和解包
自動(dòng)包裝:就是把基礎(chǔ)數(shù)據(jù)類型自動(dòng)封裝并轉(zhuǎn)換成對(duì)應(yīng)的包裝類的對(duì)象。
自動(dòng)解包:就是把包裝類的對(duì)象自動(dòng)解包并轉(zhuǎn)換成對(duì)應(yīng)的基礎(chǔ)數(shù)據(jù)類型。
示例如下:
public class Test {
public static void main(String args[]) {
Integer a1 = 5;//自動(dòng)包裝
int a2 = new Integer(5);//自動(dòng)解包
System.out.println("a1="+a1+",a2="+a2);
}
}
運(yùn)行結(jié)果:a1=5,a2=5
網(wǎng)頁名稱:六、類型轉(zhuǎn)換-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://chinadenli.net/article48/dgpghp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、用戶體驗(yàn)、靜態(tài)網(wǎng)站、虛擬主機(jī)、云服務(wù)器、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容