java 數據類型詳細講解

public class hello {
    //第一個java程序
    public static void main(String[] args) {
        System.out.println("Hello World");
        //java的數據類型
        //數據類型有八種 六種數字型 四個整數型 兩個浮點型 一種字符串型 一種布爾型
        //byte 數據類型是八位的
        // 最小值是 -128 最大值爲 127 默認值爲 0
        //變量佔用空間只是int類型的四分之一
        byte byte_1= 123;
        byte byte_2=-123;
        System.out.println(byte_1);
        System.out.println(byte_2);

        //short 數字類型是16位的
        // 最小值爲 -32768 最大值爲 32767  默認值爲 0
        // 變量佔用空間是int類型的二分之一
        short short_1=1208;
        short short_2=-1245;
        System.out.println(short_1);
        System.out.println(short_2);

        //int 數字類型爲32位的
        //最小值爲 -2,147,483,648 最大值爲 2,147,483,647 默認值爲 0
        int int_1= 100000;
        int int_2 = -10000;
        System.out.println(int_1);
        System.out.println(int_2);

        //long 數據類型爲64位
        //最小值爲 -9,223,372,036,854,775,808 最大值爲 9,223,372,036,854,775,807
        // 默認值是 0L  "L"理論上不分大小寫,但是若寫成"l"容易與數字"1"混淆,不容易分辯。所以最好大寫。
        long long_1= 10000000L;
        long long_2= -100000000L;
        System.out.println(long_1);
        System.out.println(long_2);
        // float 數據類型是單精度 32位
        // float 在存儲大型浮點數組的時候可節省內存空間
        // 默認值爲 0.0f
        // 浮點數不能用來 表示 精確的值 如貨幣
        float float_1= 234.5f;
        System.out.println(float_1);

        //爲什麼Java中long後面要加L?float後面加F?
        //java的內存體制
        //long fw = 10000000000L;
        //實際上內存中fw只是一個long類型的變量,它存在於向stack(棧)中,
        // 數值並不在其中存放,它指向heap(堆)中另一塊真正存放數值的內存,
        // 加L的目的就是爲了讓 堆 中也創建一塊long類型所需要的內存,用來來放數值。
        //所以說=前後兩者其實是在不同的兩塊內存,只不過有個無形的指針將兩者連接起來了。
        //問:
        //整數的默認的數據類型是int,那爲什麼byte和short類型後面不用加東西?
        //答:
        //java整型默認爲int,且java會自動向下轉型,byte和short都可以由int自動向下轉型,
        // 但是long類型的不能自動向上轉型,所以要加L,轉爲long類型
        //不加的後果:
        //不加L默認是int,int轉爲long是安全的,所以會自動轉,能編譯通過
        //浮點數不加F默認是double類型,double轉float可能損失精度,因爲不會自動轉,編譯通不過
        //如果超過int的取值範圍還不加L,那麼也會直接報錯了

        //double
        // 數據類型爲雙精準度 64位
        //浮點數的默認類型爲double類型
        //double類型同樣不能表示精確的值,如貨幣
        //  默認值是 0.0d;
        double double_1=123.1;
        System.out.println(double_1);

        // boolean true false
        // 默認值爲 false
        boolean bool_1= true;
        System.out.println(bool_1);
        boolean bool_2=false;
        System.out.println(bool_2);

        //char 類型是一個單一的 16位 Unicode 字節
        //最小值是 \u0000(即爲0);
        //最大值是 \uffff(即爲65,535);
        //char 數據類型可以儲存任何字符;
        char char_2='A';
        System.out.println(char_2);

        //字符串  字符串 變量 要使用 雙引號 不能使用單引號
        String str="bsdadsa";
        System.out.println(str);

        //常量
        // 常量在程序運行時 不能被修改
        // 使用關鍵字 final 來修飾常量
        final double PI=3.1415926;
        System.out.println(PI);
        //雖然常量名也可以用小寫 但是便於區分 常量建議使用大寫


        // 各種數據類型在進行混合運算的時候 要先轉換爲同一數據類型 然後再進行運算
        //數據類型轉換必須滿足如下規則:
        //1. 不能對boolean類型進行類型轉換。
        //2. 不能把對象類型轉換成不相關類的對象。
        //3. 在把容量大的類型轉換爲容量小的類型時必須使用強制類型轉換。
        //4. 轉換過程中可能導致溢出或損失精度,例如:
        int i = 128;
        byte b =(byte) i;
        //System.out.println(b);

        //浮點數到整數的轉換是通過捨棄小數得到 而不是四捨五入
        float f =23.7f;
        int in =(int)f;
        System.out.println(in);
        //自動類型轉換
        // 必須滿足 轉換前的數據類型的位數 要低於轉換後的數據類型
        // 自動轉換數據類型 只能 從小往大 進行轉換 如果從大往小轉換 有可能會導致 數據溢出
        //例如 short 數據類型位數爲 16位  就可以自動轉換爲位數爲32位的int型

        //強制類型轉換
        //1.條件是轉換的數據類型必須是兼容的
        // 2. 格式爲:(type)value type 是要強制類型轉換後的數據類型

        //隱含強制類型轉換
        //1. 整數的數據類型是int



    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章