1. 程式人生 > >java包裝類--Numbers抽象類,Character類

java包裝類--Numbers抽象類,Character類

Number 類屬於 java.lang 包。
在實際開發過程中,經常會遇到需要使用物件,而不是內建資料型別的情形。為了解決這個問題,Java 語言為每一個內建資料型別提供了對應的包裝類。所有的包裝類 (Integer, Long, Byte, Double, Float, Short,Character,Boolean) 是抽象類Number的子類。
這種由編譯器特別支援的包裝稱為裝箱,所以當內建資料型別被當作物件使用的時候,編譯器會把內建型別裝箱為包裝類。相似的,編譯器也可以把一個物件拆箱為內建型別。
Java 會對 -128 ~ 127 的整數進行快取,所以當定義兩個變數初始化值位於 -128 ~ 127 之間時,兩個變數使用了同一地址;
當兩個 Integer 變數的數值超出 -128 ~ 127 範圍時, 變數使用了不同地址。
裝箱和拆箱請看例項:

public static void main(String[] args) {
		int a = 123;
		int b = 123;
		System.out.println(a == b);
		Integer c = 123;
		Integer d = 123;
		System.out.println(c == d);
		//Java 會對 -128 ~ 127 的整數進行快取,所以當定義兩個變數初始化值位於 -128 ~ 127 之間時,兩個變數使用了同一地址
		System.out.println(c.equals(d));
		Integer e = 1234;
		Integer f = 1234;
		System.out.println(e == f);
		Integer g = 1234; // 裝箱,裝箱就是自動將基本資料型別轉換為包裝器型別
		g = g + 2; // 拆箱,拆箱就是自動將包裝器型別轉換為基本資料型別。
		System.out.println(g);
	}

執行結果:

true
true
true
false
1236

Character 類在物件中包裝一個基本型別 char 的值,可以使用Character的構造方法建立一個Character類物件,使用Character類提供的一系列方法來操縱字元

char a = 'a';
	char[] b = {'a', 'b','c'};
	Character c = new Character('a'); // java9 已移除
    Character d = 'a';   // 裝箱,原始字元 'a' 裝箱到 Character 物件 d 中