1. 程式人生 > >Java基礎學習總結(122)——Java八種基本資料型別的包裝類及其裝箱拆箱詳解

Java基礎學習總結(122)——Java八種基本資料型別的包裝類及其裝箱拆箱詳解

一、基本資料型別及對應的包裝類
基本資料型別對應的包裝類
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean
每個包裝類的物件可以封裝一個相應的基本型別的資料,並提供了其它一些有用的方法。包裝類物件一經建立,其內容(所封裝的基本型別資料值)不可改變。
基本型別和對應的包裝類可以相互裝換:
由基本型別向對應的包裝類轉換稱為裝箱,例如把 int 包裝成 Integer 類的物件;
包裝類向對應的基本型別轉換稱為拆箱,例如把 Integer 類的物件重新簡化為 int。
二、包裝類的應用
八個包裝類的使用比較相似,下面是常見的應用場景。

1)實現 int 和 Integer 的相互轉換
可以通過 Integer 類的構造方法將 int 裝箱,通過 Integer 類的 intValue 方法將 Integer 拆箱。例如:
public class Demo {
public static void main(String[] args) {
int m = 500;Integer obj = new Integer(m);
// 手動裝箱
int n = obj.intValue(); 
// 手動拆箱
System.out.println("n = " + n);
Integer obj1 = new Integer(500);
System.out.println("obj 等價於 obj1?" + obj.equals(obj1));

}
}
執行結果:
n = 500
obj 等價於 obj1?true
2) 將字串轉換為整數
Integer 類有一個靜態的 paseInt() 方法,可以將字串轉換為整數,語法為:
parseInt(String s, int radix);
s 為要轉換的字串,radix 為進位制,可選,預設為十進位制。
下面的程式碼將會告訴你什麼樣的字串可以轉換為整數:
public class Demo {
public static void main(String[] args) {
String str[] = {"123", "123abc", "abc123", "abcxyz"};
for(String str1 : str){

try{
int m = Integer.parseInt(str1, 10);
System.out.println(str1 + " 可以轉換為整數 " + m);
}catch(Exception e){
System.out.println(str1 + " 無法轉換為整數");
}
}
}
}
執行結果:
123 可以轉換為整數 123
123abc 無法轉換為整數
abc123 無法轉換為整數
abcxyz 無法轉換為整數
3) 將整數轉換為字串
Integer 類有一個靜態的 toString() 方法,可以將整數轉換為字串。例如:
public class Demo {
public static void main(String[] args) {
int m = 500;String s = Integer.toString(m);
System.out.println("s = " + s);
}
}
執行結果:
s = 500
三、自動拆箱和裝箱
上面的例子都需要手動例項化一個包裝類,稱為手動拆箱裝箱。Java 1.5(5.0) 之前必須手動拆箱裝箱。
Java 1.5 之後可以自動拆箱裝箱,也就是在進行基本資料型別和對應的包裝類轉換時,系統將自動進行,這將大大方便程式設計師的程式碼書寫。例如:
public class Demo {
public static void main(String[] args) {
int m = 500;Integer obj = m; 
// 自動裝箱
int n = obj; 
// 自動拆箱
System.out.println("n = " + n);
Integer obj1 = 500;
System.out.println("obj 等價於 obj1?" + obj.equals(obj1));
}
}
執行結果:
n = 500
obj 等價於 obj1?true