Java 數(shù)據(jù)類型 Part04 整數(shù)型

/*
    關(guān)于Java當(dāng)中的整數(shù)型:

    數(shù)據(jù)類型                占用空間大小                默認(rèn)值              取值范圍
    ----------------------------------------------------------------------------
    byte                        1                      0                [-127~128]
    short                       2                      0                [-32768~32767]
    int                         4                      0                [-2147483648~2147483647]
    long                        8                      0L                   

    1、java語言當(dāng)中的“整數(shù)型字面值”被默認(rèn)當(dāng)作int類型來處理。要讓這個“整數(shù)型字面值”被當(dāng)作long類型來處理的話,
    需要在 整數(shù)型字面值 后面添加l或者L,建議使用大寫L

    2、java中的整數(shù)型字面值有三種表示方式:
        第一種:十進(jìn)制【是一種缺省默認(rèn)的方式】
        第二種:八進(jìn)制【編寫八進(jìn)制整數(shù)型字面值時要以0開頭】
        第三種:十六進(jìn)制【編寫十六進(jìn)制的整數(shù)型字面值的時候要以0x開頭】

    3、

*/
public class DataTypeTest04{
    public static void main(String[] args){
        int a = 10;
        int b = 010;    //八進(jìn)制
        int c = 0x10;   //十六進(jìn)制

        System.out.println(a);  //10
        System.out.println(b);  //8
        System.out.println(c);  //16

        System.out.println(a+b+c);  //34

        //123這個整數(shù)型字面值是int類型
        //i 變量聲明的時候也是int類型
        //int類型的123賦值給int類型的變量i,不存在類型的轉(zhuǎn)換
        int i = 123;
        System.out.println(i);

        //456整數(shù)型字面值是int類型
        //x 變量聲明的時候是long類型
        //int類型的字面值賦值給long類型的變量x,存在類型轉(zhuǎn)換
        //小類型轉(zhuǎn)換大類型可以自動轉(zhuǎn)換
        long x = 456;
        System.out.println(x);

        long y = 2147483647;
        System.out.println(y);

        //long z = 2147483648;//超出int類型范圍報錯
        //解決錯誤
        long z = 2147483648L;//數(shù)字后面加上L,一開始就當(dāng)作long類型,也就不超long類型范圍,也不存在類型轉(zhuǎn)換。
        System.out.println(z);



        long l = 100L;
        //int m = l; // 大容量直接賦值給小容量會報錯

        //大容量賦值給小容量需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換
        //加上強(qiáng)制類型轉(zhuǎn)換之后才能編譯通過
        //但是要慎重使用,因為運(yùn)行過程中可能會損失精度,后果可能會很嚴(yán)重
        int m = (int)l;
        System.out.println(m);


        //byte類型有特殊招待,無需強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型也能直接賦值給byte
        //前提是 沒有超過byte類型的數(shù)據(jù)范圍
        byte d = 50;//可以
        byte e = 127;//可以 
        //byte f = 128;//編譯報錯,超出byte類型范圍,需要使用強(qiáng)制類型轉(zhuǎn)換符

        short f = 32767;//可以
        //short h = 32768;//不可以,編譯報錯

        char cc = 65535;//可以
        cc = 65536;//不可以,編譯報錯

        /*
            當(dāng)一個整數(shù)字面值沒有超過byte、short、char的取值范圍,這個字面值
            可以直接賦值給byte、short、char類型的變量。
            這種機(jī)制SUN允許了,目的是為了方便程序員的編程。
        */
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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