java包裝類--Numbers抽象類,Character類
阿新 • • 發佈:2018-12-12
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 中