在開發過程當中,有不少的方法接收的參數都是引用類型的對象,此時就沒法將一個基本數據類型的數據傳入。這是就須要經過包裝類將基本數據類型的值包裝爲引用類型的對象。下表列出了每種基本數據類型對應的包裝類:java
基本數據類型 | 對應的包裝類 |
byte | Byte |
char | Charactter |
int | Integer |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
包裝類和基本數據類型在進行轉換時,引入了裝箱和拆箱的概念。其中,裝箱是指將基本數據類型的值轉爲引用數據類型,反之,拆箱是指將引用數據類型的對象轉爲基本數據類型。spa
Example01.javacode
public class Example01 { public static void main(String[] args) { int a = 20; Integer in = new Integer(a); System.out.println(in.toString()); } }
運行結果以下:對象
上面的例子演示了包裝類Integer的裝箱過程,在建立Integer對象時,將int類型的變量a做爲參數傳入,從而轉爲Integer類型。同時,因爲Object類是全部類的父類,所以能夠經過調用toString()方法將Integer的值以字符串的形式打印出來。此處的toString()方法也能夠省略。blog
Integer類除了具備Object類的全部方法以外,還有一些特有的方法。開發
方法聲明 | 功能描述 |
static String toBinaryString(int i) | 以二進制無符號整數形式返回一個整數參數的字符串 |
static String toHexString(int i) | 以十六進制無符號整數形式返回一個整數參數的字符串 |
static String toOctalSring(int i) | 以八進制無符號整數形式返回一個整數參數的字符串 |
static Integer valueOf(int i) | 返回一個表示指定的int值的Integer實例 |
static Integer valueOf(String s) | 返回保存指定的String的值的integer對象 |
static int parseInt(String s) | 將字符串參數做爲有符號的十進制整數進行解析 |
intValue() | 將Integer類型的值以int類型返回 |
Example02.java字符串
1 public class Example02 { 2 public static void main(String[] args) { 3 Integer num = new Integer(20); 4 int a = 10; 5 int sum = num.intValue() + a; 6 System.out.println("sum=" + sum); 7 } 8 }
運行結果以下:數學
上面的例子演示了拆箱的過程,Integer對象經過調用intValue()方法,將Integer對象轉爲int類型,從而能夠與int類型的變量a進行加法運算,最終得出運算結果。編譯
上面列表中的parseInt()方法在程序中很經常使用,它是一個靜態方法,用於將一個字符串形式的數值轉成int類型。table
在使用包裝類時,須要注意如下幾點:
1 Integer i = Integer.valueOf("123");//合法 2 Integer i = Integer.valueOf("12a");//不合法
1 int i = Integer.parseInt("123");//合法 2 Integer in = Integer.parseInt("12a");//不合法
JDK5.0新特性---自動拆箱和自動裝箱
在JDK5.0以前,數學運算表達式中的操做數必須是基本類型的,而且運行結果也是基本類型,包裝類和基本類型是不容許進行混合數學運算的,若是想運算,必需要經過拆箱將包裝類對象轉爲基本數據類型的值才行。