—— 本文參照 Learn Java for Android Development (第三版)
類型轉換符
類型轉換符的用法是(類型)操作數(shù)浸遗,作用是要把操作數(shù)轉換為括號里面的類型敦姻。這個操作符之所以存在是因為我們在平時的數(shù)據(jù)處理過程中一不小心數(shù)據(jù)就因為自動轉換而產生錯誤或者誤差。例如:short s = 1.65 + 3丢习;如果我們在代碼里面這樣寫的話編譯器就會報錯,因為這里我們會將一個64位的雙精度操作數(shù)1.65轉化為一個16位的整形,這時候小數(shù)點后面的數(shù)據(jù)就會丟失,也就是說s的結果會是4而不是4.65掉奄。
其實在實際的開發(fā)過程中部分數(shù)據(jù)丟失也不一定會產生問題,所以 1.65 + 3横侦;這樣編譯器就會知道我們想把1.65+3的結果轉化為短整形挥萌,這樣結果的小數(shù)部分就會被省略掉了。
下面我們給出一個例子來證明類型轉換符的必要性:
char c = 'A';
byte b = c;
以上表達式在執(zhí)行的時候編譯器會拋出異常枉侧,因為c表示的是一個無符整形變量引瀑,它的數(shù)據(jù)范圍是0-65535,但是b表示的是一個有符號整形榨馁,并且數(shù)據(jù)范圍是-128到127憨栽。雖然在上面的表達式里面'A'的值是65,轉化以后也不會越界,但是如果c初始化為'\u0323'屑柔,這時候錯誤就會出現(xiàn)了屡萤。
這里的解決辦法就是用類型轉換符將c轉化為b的數(shù)據(jù)類型,這樣編譯器就會將字符型的c強制轉化為字節(jié)類型:
byte b = (byte) c;
JAVA支持以下類型的轉化:
1 字節(jié)類型轉換為字符類型
2 短整形轉換為字節(jié)類型或者字符類型
3 字符類型轉換為字節(jié)整形或者短整形
4 整形轉換為字節(jié)類型掸宛,短整形或者字符類型
5 長整形轉換為字節(jié)類型死陆,短整形,字符類型唧瘾,或者整形
6 浮點類型轉換為字節(jié)類型措译,短整形,字符類型饰序,整形或者長整形领虹。
7 雙精度浮點型轉換為字節(jié)類型,短整形求豫,字符類型塌衰,整形,長整形或者浮點類型蝠嘉。
Page 59