Java外覆型別

實值型別所對應的參照型別

Java的實值型別都有一個對應的外覆型別
主要用於樣版參數
因為Java的樣板只能使用參照型別

public static void main(String args[])
{
    byte      b       = 127;
    Byte      bw      = new Byte(b);// byte 外覆類別

    short     s       = 32767;
    Short     sw      = new Short(s);// short 外覆類別

    int       i       = 2147483647;
    Integer   iw      = new Integer(i);// int 外覆類別

    long      l       = 9223372036854775807L;
    Long      lw      = new Long(l);// long 外覆類別

    char      c       = '\u3000';
    Character cw      = new Character(c);// char 外覆類別

    float     f       = 3.14f;
    Float     fw      = new Float(f);// float 外覆類別

    double    d       = 6.28;
    Double    dw      = new Double(d);// double 外覆類別

    boolean   cond    = true;
    Boolean   condw   = new Boolean(true);// boolean 外覆類別
}

自動拆箱和裝箱(Boxing and UnBoxing)

基礎型別到外覆型別轉換稱為裝箱
反之稱為拆箱

public static void main(String args[])
{
    int      i   = new Integer(10);//變數設定自動拆箱 Integer -> int
    Integer  iw  = i;              //變數設定自動裝箱 int -> Integer

    f(iw); // 函式呼叫自動拆箱 Integer -> int
    g(i);  // 函式呼叫自動裝箱 int -> Integer
}

// 基礎型別範例
public static void f(int value)
{}

// 參照型別範例
public static void g(Integer value)
{}