1 基本數據類型與對象包裝類對應關係
基本數據類型 | 對象包裝類 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
boolean | Boolean |
float | Float |
double | Double |
char | Character |
2 基本數據類型與對象封裝類之間的轉換
封裝類用來解決基本數據類型和String類型之間相互轉換的關係而存在
//String → Integer → int
Integer a = new Integer("123");
int b = a;
System.out.println(b - 23);
輸出:100
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//String → Integer → double
String a = "123";
Integer b = new Integer(a);
double c = b.doubleValue();//看看doubleValue()的作用,當然還有floatValue,byteValue,longValue()等,作用類似。
System.out.println(c - 23);
輸出:100.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// int→ Integer →String
int d = 123;
Integer e = new Integer(d);
String f = e.toString();//toString()方法,能將上面的對象包裝類轉換成String類型,注意:String f = d.toString();//錯誤,因爲d是基本數據類型!
System.out.println(f - 23);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
此時不能編譯,因爲 f 已經是字符串,不能進行四則運算。
2 自動拆箱和自動裝箱
基本數據類型的自動裝箱(autoboxing)、拆箱(unboxing)是自JDK5.0開始提供的功能。
自動裝箱:
我們這樣創建一個類的對象:
Student a = new Student();
當我們創建一個Integer對象時,卻可以這樣:
Integer b = 123;//注意:不是 int b = 123;
實際上,系統自己已經執行了:Integer b = new Integer(123);
這就是自動裝箱功能。
自動拆箱:
也就是將對象中的基本數據從對象中自動取出。如下可實現自動拆箱:
Integer b = 123;//裝箱
int b = 123;//拆箱