Java中的包裝類(Interage和String)
阿新 • • 發佈:2022-03-08
包裝類的分類
包裝類的特點
包裝類有了類的屬性就可以呼叫類中的方法,更有了類的特點,還可以進行型別的互相轉換,更方便我們使用。
包裝類和基本資料型別的轉換
- 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 } }