1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        「Java 專欄」06-Java 中的基本數(shù)據(jù)類型

        共 8014字,需瀏覽 17分鐘

         ·

        2022-11-04 09:50

        你好,我是悅創(chuàng)。

        原文首發(fā):https://bornforthis.cn

        1. 目錄

        • 認識二進制
        • 數(shù)字的基本數(shù)據(jù)類型
        • 布爾和字符數(shù)據(jù)類型
        • 使用各種基本數(shù)據(jù)類型
        public class BigNumber {
            public static void main(String[] args) {
                int bigNum = 9999999999;  // 會報錯:java: 整數(shù)太大
                long number = 9999999999L;  // 解決方法
            }
        }

        從上面的代碼,我們引出了幾個問題:

        • long 是個什么東西?
        • L 又是什么東西?

        這就是你要學(xué)習(xí)本屆內(nèi)容的原因!

        2. 認識二進制

        2.1 十進制

        每一位可以是 0~9這 10 個值,到 10 進位。一百用十進制表示就是 100,十就是 10。

        2.2 二進制

        每一位可以是 0 和 1 這兩個值,到 2 進位。一百用二進制表示就是 1100100,十就是 1010。

        2.3 十六進制

        每一位可以是 0~F 這15個值,到 16 進位。一百用十六進制表示就是 64,十就是 A。

        2.3 bit 和 byte

        Bit 意為“位”或“比特”,是計算機運算的基礎(chǔ),屬于二進制的范疇; Byte 意為“字節(jié)”,是計算機文件大小的基本計算單位;「換算」1 Byte = 8 Bits【1B=8b】 1 KB = 1024 Bytes 1 MB = 1024 KB 1 GB = 1024 MB

        • 一個二進制的位叫做一個 bit。俗稱小 b。寬帶中的單位,都是小 b
        • 八個二進制的位,組成一個 byte,俗稱大 B。硬盤等存儲的單位,都是大 B
        • Byte 是計算機中基本的衡量存儲的單位,計算機在對外使用時不會用小 b(bit) 作為劃分存儲的單位。

        3. 數(shù)字的基本數(shù)據(jù)類型

        3.1 整數(shù)類型

        • byte 占用 1 個 byte,值域是 -128~127
        • short 占用 2 個 byte,值域是 -32768~32767
        • int 占用 4 個 byte,值域是 -2147483648~2147483647。Java 中整數(shù)缺省是 int 類型
          • 【缺省:默認情況下,沒有特殊指明類型下,Java 認為是 int】
          • 【缺省,即系統(tǒng)默認狀態(tài),意思與“默認”相同?!?/section>
          • 【“缺省”最初來源于計算機英文文檔中的單詞"default","default”有很多意思:違約、缺省、拖欠、默認,由于當(dāng)時計算機方面的翻譯水平不高,于是就把這個詞直譯成了“缺省”,其實應(yīng)該取它的引申意思“默認”。后來的人們發(fā)現(xiàn),無論怎么解釋,缺省好像都說不通,但是由于之前的人們已經(jīng)習(xí)慣了“缺省”這個用法,故依舊延續(xù)了這個用法。后來的新一輩的人們覺得說起來很拗口,就使用了"default”的引申意思,所以現(xiàn)在在大多數(shù)計算機技術(shù)文檔或者軟件里面,采用的都是意譯之后的“默認”這個用法?!?/section>
        • long 占用 8 個 byte,值域是 -9223372036854774808~9223372036854774807

        3.2 浮點(小數(shù))類型

        • float 占用 4 個 byte ,有精度,值域復(fù)雜 ±340282346638528859811704183484516925440
        • double 精度是 float 的兩倍,占用  8  個 byte。Java 中浮點數(shù)缺省是 double 類型。
        public class FloatCalc {
            public static void main(String[] args) {
                System.out.println(1 / 3.0);  
                // 實際來說是無限循環(huán)小數(shù),但是對 Java 來說能力有限只能顯示/計算范圍內(nèi)的結(jié)果
                // 也可以說,計算機沒有能力把這個無限循環(huán)表達出來。在它可能的存儲空間里,只能保存到 0.3333333333333333
            }
        }

        3.3 符號位

        用 byte 來舉例子,一個 1 byte = 8 bit;2【二進制】 的 8 次方是 256,而有一個是符號位,所以最后是:128,也就是上面給出的范圍。 參考:https://bornforthis.cn/posts/14.html

        4. 布爾和字符數(shù)據(jù)類型

        4.1 布爾和字符數(shù)據(jù)類型

        • boolean 占用 4 個 byte,值域是 true,false。
        • char 占用 2 個 byte,值域是所有字符(最多 65535 個)
        public class BooleanAndChar {
            public static void main(String[] args) {
                System.out.println(1 < 2);  // true
                System.out.println(1 > 2);  // false

                System.out.println("ABC");
                System.out.println('A');  // 只能有一個字符
            }
        }

        5. 使用各種基本數(shù)據(jù)類型

        • 例程
        • L 后綴
        • 感受浮點數(shù)精度
        • 整數(shù)缺省是 int 類型,浮點數(shù)缺省是 double 類型
        • 編譯錯誤的定位和修正

        6. 代碼實操

        public class PrimaryTypes {
            public static void main(String[] args) {
                byte byteVar = 99;
        //        byte byteVar = 128;  // 超出 byte 范圍
                System.out.println(byteVar);

                short shorVar = -30000;
                System.out.println(shorVar);

                int intVar = 300000;
                System.out.println(intVar);

                long longVar = 99;

        //        long bingLongVar = 9999999999;  // 缺省是 int,需要在末尾添加 L
                long bingLongVar = 9999999999L;  // 缺省是 int,需要在末尾添加 L
        //        long bingLongVar = 9999999999l;  // 不推薦小 l,比如:11111111l,你能發(fā)現(xiàn)哪個是 1 哪個是 l 么?
                System.out.println(bingLongVar);

                float floatVar = 100.1f// 缺省是 double 需要在后面添加 f/F
        //        float floatVar = 100.1; // 缺省是 double 需要在后面添加 f/F
                System.out.println(floatVar);
                /*
                * 解析:缺省是 double,也就是說浮點數(shù)會被自動識別為 double;
                * 但是你前面的變量被聲明為 float 這樣就和系統(tǒng)相沖突啦,就需要標(biāo)明數(shù)字類型*/


                double doubleVar = 100.1;
                System.out.println(doubleVar);

                boolean condition = true;
                boolean fcondition = false;
                System.out.println(condition);

                char ch = 'A';
                System.out.println(ch);

                float floatVar1 = 100.1111111111f;
                System.out.println("floatVar1:>>>" + floatVar1);
                double dobleVar1 = 100.1111111111;
                System.out.println("dobleVar1:>>>" + dobleVar1);
            }
        }
        "C:\Program Files\Java\jdk-11.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.2\lib\idea_rt.jar=49882:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.1.2\bin" -Dfile.encoding=UTF-8 -classpath D:\Java_Coder\Coder06\out\production\Coder06 PrimaryTypes
        99
        -30000
        300000
        9999999999
        100.1
        100.1
        true
        A
        floatVar1:>>>100.111115
        dobleVar1:>>>100.1111111111

        Process finished with exit code 0
        import java.math.BigDecimal;

        public class PrimaryTypes {
            public static void main(String[] args) {
                byte byteVar = 100;
                System.out.println(byteVar);

                short shortVar = 30000;
                System.out.println(shortVar);

                int intVar = 1000000000;
                System.out.println(intVar);

                long longVar = 80000000000L;
                System.out.println(longVar);

                float floatVar = 100.0000000666F;
                System.out.println(floatVar);

                double doubleVar = 100.0000000666;
                System.out.println(doubleVar);

                boolean booleanVar = true;
                System.out.println(booleanVar);

                char charVar = 'a';
                System.out.println(charVar);

            }
        }

        7. 技巧

        瀏覽 53
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日逼视频网站 | 国产精品无码激情视频 | 性少妇丰满| 国偷自产av一区二区三区麻豆 | 少妇又色又紧又爽又刺激视频 | 草骚比影视 | 黑人精品XXX一区一二区 | 日韩 国产 欧美视频二区五十岁 | 亚洲涩涩图 | 小黄片软件下载 |