1. 程式人生 > 其它 >Java中的包裝類(Interage和String)

Java中的包裝類(Interage和String)

包裝類的分類

 

 

包裝類的特點

包裝類有了類的屬性就可以呼叫類中的方法,更有了類的特點,還可以進行型別的互相轉換,更方便我們使用。

包裝類和基本資料型別的轉換

  • jdk5前的手動裝箱和拆箱方式,裝箱:把基本資料型別--->包裝型別。反之拆箱:包裝型別--->基本資料型別
  • jdk5以後就是自動拆箱和裝箱
  • 自動裝箱呼叫的是底層的valueOf方法

 

Integer 和 String 轉換

 

Integer的建立機制

  • 第一

public class Integer_Mechanism {
    public static void main(String[] args) {

        Integer integer = new Integer(1);
        Integer integer1 = new Integer(1);
        System.out.println(integer == integer1);//false
        //解釋:因為==是判斷引用資料型別是判斷是不是同一個物件,因為是 new 的所以不是同一個物件
    }
}
  •  第二種

public class Integer_Mechanism {
public static void main(String[] args) {

/**
* 底層原始碼:
* public static Integer valueOf(int i) {
* if (i >= IntegerCache.low && i <= IntegerCache.high)
* return IntegerCache.cache[i + (-IntegerCache.low)];
* return new Integer(i);
* }
*
* 解釋:判斷i的範圍是不是在-127 ~ 128之間,如果在就建立物件
* 很顯然下面的a和m都在這個範圍, 並沒有new一個物件,所以他們是同一個物件
* 如果不是在-127 ~ 128這個範圍就new 一個物件
*/
Integer a = 1;//底層 Integer.valueOf(1);

Integer m = 1;//底層 Integer.valueOf(1);
System.out.println(a == m);//true

Integer a1 = 128;//底層 Integer.valueOf(128);
Integer m1 = 128;//底層 Integer.valueOf(128);
System.out.println(a1 == m1);flase
}
}
  • 第三種

public class Intager_ {
    public static void main(String[] args) {
        //主要只要有基本資料型別就是判斷值是否相等
        Integer a = 128;
        int i = 128;
        System.out.println(a == i);//T

        //主要只要有基本資料型別就是判斷值是否相等
        Integer a1 = 128;
        int i1 = 128;
        System.out.println(a1== i1);//T

    }
}