Java資料型別 - 原始和二進位制文字

2019-10-16 22:23:28

Java是一種強型別語言,這意味著在使用它之前必須首先宣告所有變數。在java中宣告變數包括帶有可選值賦值的型別和名稱。如果未分配任何值,則變數保持預設值。對於基本型別,有不同的預設值,但對於Object資料型別,它始終為null

1. Java原始資料型別

Java程式設計語言套件含八種原始資料型別。四種原始資料型別用於整數值 - byteshortintlong。兩種原始資料型別用於浮點型十進位制值 - floatdouble。表示一個是字元的char型別,表示一個是條件的boolean型別。Java程式設計語言還附帶了所有這些原始資料型別的Wrapper類。

下表顯示了所有這些原始資料型別,包括大小,範圍,預設值和分配它們的不同方式。

Java數據類型

下面是一個簡單的java程式,它顯示了宣告原始資料型別的一些方法 - 仔細閱讀char轉換,以及通過顯式將int轉換為byte時會發生什麼。

public class DataTypes {

    public static void main(String[] args) {

        char c = 'A';
        System.out.println(c); //列印 A

        char c1 = '\u0041';
        System.out.println(c1); //列印 A

        char c2 = 0;
        System.out.println("Default Value:"+c2+":"); // 列印預設值

        char c3 = 65;
        System.out.println(c3); //列印 A

        char c4 = '\t';
        System.out.println("Tab Start:"+c4+":End"); //列印 Tab 

        byte b = 10;
        System.out.println(b); //列印 10

        byte b1 = (byte) 200;    
        System.out.println(b1); // 列印 -56
        //<0...>_11001000 (int),轉換為 11001000 (byte) by stripping leading 24 bits
        // since left most bit is 1, we need to find the value
        // Ones complement 11001000 -1 = 11000111
        //invert digits 00111000 i.e 56, hence printing -56

        b1 = (byte) 0b11001000;
        System.out.println(b1); //列印 -56

        byte b2 = (byte) 320; //256+64 i.e 00000000_00000000_00000001_01000000, byte 01000000
        // 由於前導位為0,因此無需確定任何值
        System.out.println(b2); //列印 64

        short s = 32;
        short s1 = 'A'; //隱式將char轉換為 short
        System.out.println(s1); //列印 65

        int i = 'A';
        System.out.println(i); //列印 65

        long l = 3200L;
        long l1 = 3200;

        float f = 12.34f;

        // 範例
        byte x, y = 1, z = 2; 
        x = (byte) (y + z);
    }

}

在數位文字中使用下劃線

從Java 7開始,可以在數位文字中使用下劃線,例如 - long ccNum = 1234_5678_9101_1121L;

2. 二進位制文字

從Java 7開始,整數型別(byteshortintlong)也可以使用二進位制數系統表示。但需要在數位前加0b0B。如下範例所示 -

// An 8-bit 'byte' value:
byte aByte = (byte)0b00100001;

// A 16-bit 'short' value:
short aShort = (short)0b1010000101000101;