基本類型的類型轉換(隱式類型轉換)和強制類型轉換(譯二)

基本類型的類型轉換(隱式類型轉換)和強制類型轉換

基本類型的強制轉換

所謂強制類型轉換(CAST)是根據程序員的意志來進行類型變換的處理。若是隱式類型轉化沒法進行的場合,使用強制類型轉換。用「( )」包圍須要強制轉換的類型,而後將其放在須要轉換的變量以前。java

(変換したい型)変換元の変數;

【例3】強制轉換的例子。程序員

int x = 10;
byte y = (byte)x;

將int類型的變量強制轉換爲byte類型,而後賦值給y。
若是是默認的隱式類型轉換是沒法將int類型轉換爲byte類型的。code

強制轉換的規則

boolean類型之外的基本類型的變量能夠強制轉換爲其餘非boolean類型的基本類型的變量。無論是將變量強制轉換爲存儲區域更大的類型,仍是將變量轉換爲存儲區域更小的類型,都是能夠。將變量強制轉換爲存儲區域更大的時候,即便不進行強制轉換,隱式的類型變換也是能夠進行的。class

boolean類型沒法強制轉換爲其餘類型。
將變量轉換爲存儲領域強制轉換爲更窄的場合,待變換的數據可能發生溢出。變量

【例4】強制轉換數據溢出的實例。程序

public class ExVar1 {
    public static void main(String[] args) {
        short x = 257;
        byte y = (byte)x;  //(1)強制轉換爲byte類型
        System.out.println(y);  //(2)
    }
}

說明4
(1)將short類型的變量強制轉換爲byte類型,而後將byte類型變量賦值給y。
(2)用println方法打印變量y的值。byte類型的變量最多制定存儲一個字節的值(有符號,-128~127)。超過1個字節的數據被截斷(數據溢出)。由於這個緣由沒法獲得想要的結果。方法

強制轉換_數據溢出
運行結果4數據

D:\JAVA>javac ExVar1.java
                                                
D:\JAVA>java ExVar1
1

D:\JAVA>

更新日:2012/02/18static

相關文章
相關標籤/搜索