第二章 java基礎(chǔ)(類型轉(zhuǎn)換符一)

—— 本文參照 Learn Java for Android Development (第三版)
類型轉(zhuǎn)換符
類型轉(zhuǎn)換符的用法是(類型)操作數(shù),作用是要把操作數(shù)轉(zhuǎn)換為括號(hào)里面的類型。這個(gè)操作符之所以存在是因?yàn)槲覀冊(cè)谄綍r(shí)的數(shù)據(jù)處理過(guò)程中一不小心數(shù)據(jù)就因?yàn)樽詣?dòng)轉(zhuǎn)換而產(chǎn)生錯(cuò)誤或者誤差。例如:short s = 1.65 + 3;如果我們?cè)诖a里面這樣寫的話編譯器就會(huì)報(bào)錯(cuò),因?yàn)檫@里我們會(huì)將一個(gè)64位的雙精度操作數(shù)1.65轉(zhuǎn)化為一個(gè)16位的整形,這時(shí)候小數(shù)點(diǎn)后面的數(shù)據(jù)就會(huì)丟失,也就是說(shuō)s的結(jié)果會(huì)是4而不是4.65。
其實(shí)在實(shí)際的開發(fā)過(guò)程中部分?jǐn)?shù)據(jù)丟失也不一定會(huì)產(chǎn)生問(wèn)題,所以 1.65 + 3;這樣編譯器就會(huì)知道我們想把1.65+3的結(jié)果轉(zhuǎn)化為短整形,這樣結(jié)果的小數(shù)部分就會(huì)被省略掉了。
下面我們給出一個(gè)例子來(lái)證明類型轉(zhuǎn)換符的必要性:
char c = 'A';
byte b = c;
以上表達(dá)式在執(zhí)行的時(shí)候編譯器會(huì)拋出異常,因?yàn)閏表示的是一個(gè)無(wú)符整形變量,它的數(shù)據(jù)范圍是0-65535,但是b表示的是一個(gè)有符號(hào)整形,并且數(shù)據(jù)范圍是-128到127。雖然在上面的表達(dá)式里面'A'的值是65,轉(zhuǎn)化以后也不會(huì)越界,但是如果c初始化為'\u0323',這時(shí)候錯(cuò)誤就會(huì)出現(xiàn)了。
這里的解決辦法就是用類型轉(zhuǎn)換符將c轉(zhuǎn)化為b的數(shù)據(jù)類型,這樣編譯器就會(huì)將字符型的c強(qiáng)制轉(zhuǎn)化為字節(jié)類型:
byte b = (byte) c;
JAVA支持以下類型的轉(zhuǎn)化:
1 字節(jié)類型轉(zhuǎn)換為字符類型
2 短整形轉(zhuǎn)換為字節(jié)類型或者字符類型
3 字符類型轉(zhuǎn)換為字節(jié)整形或者短整形
4 整形轉(zhuǎn)換為字節(jié)類型,短整形或者字符類型
5 長(zhǎng)整形轉(zhuǎn)換為字節(jié)類型,短整形,字符類型,或者整形
6 浮點(diǎn)類型轉(zhuǎn)換為字節(jié)類型,短整形,字符類型,整形或者長(zhǎng)整形。
7 雙精度浮點(diǎn)型轉(zhuǎn)換為字節(jié)類型,短整形,字符類型,整形,長(zhǎng)整形或者浮點(diǎn)類型。

Page 59

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容