我們對基本數據類型都非常熟悉,例如int、float、double、boolean、char等。基本數據類型是不具備對象的特性
的,比如基本類型不能調用方法、功能簡單。為了讓基本數據類型也具備對象的特性,Java為每個基本數據類型都提
供了一個包裝類,這樣我們就可以像操作對象那樣來操作基本數據類型。
包裝類(如:Integer,Double等)這些類封裝一個相應的基本數據類型數值,並為其提供了一系列操作。
基本類型和包裝類之間的對應關系:
包裝類主要提供了兩大類方法:
1將本類型和其他基本類型進行轉換的方法;
2將字符串和本類型及包裝類互相轉換的方法。
我們以java.lang.Integer包裝類為例,來看下包裝類的特性。
Integer包裝類的構造方法:
如下代碼所示:
Integer包裝類的常用方法:
實例:
public class Test{ public static void main(String args[]){ //定義int類型變量,值為86 int score1 = 86; //創建Integer包裝類對象,表示變量score1的值 Integer score2=new Integer(score1); //將Integer包裝類轉換為double類型 double score3=score2.doubleValue(); //將Integer包裝類轉換為float類型 float score4=score2.floatValue(); //將Integer包裝類轉換為int類型 int score5 =score2.intValue(); //輸出結果 System.out.println("Integer包裝類:" + score2); System.out.println("double類型:" + score3); System.out.println("float類型:" + score4); System.out.println("int類型:" + score5); } }
編譯運行結果:
基本類型和包裝類之間經常需要互相轉換,還是以Integer包裝類為例來進行講解,其他包裝類的用法基本相似。
看下面的代碼示例:
在JDK1.5引入自動裝箱和拆箱的機制後,包裝類和基本類型之間的轉換就更加輕松便利了。那什麼是裝箱和拆箱
呢?我們分別來看下:
裝箱:把基本類型轉換成包裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱。
拆箱:和裝箱相反,把包裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱。
實例:
public class Test{ public static void main(String args[]){ //定義double類型變量 double a = 91.5; //手動裝箱 Double b = new Double(a); //自動裝箱 Double c = a; System.out.println("裝箱後的結果為:" + b + "和" + c); //定義一個Double包裝類對象,值為8 Double d = new Double(87.0); //手動拆箱 double e = d.doubleValue(); //自動拆箱 double f = d; System.out.println("拆箱後的結果為:" + e + "和" + f); } }
編譯運行結果:
在程序開發中,我們經常需要在基本數據類型和字符串之間進行轉換。其中,基本類型轉換為字符串有三種法:
1使用包裝類的toString()方法;
2使用String類的valueOf()方法;
3用一個空字符串加上基本類型,得到的就是基本類型數據對應的字符串。
再來看,將字符串轉換成基本類型有兩種方法:
1調用包裝類的parseXxx靜態方法;
2調用包裝類的valueOf()方法轉換為基本類型的包裝類,會自動拆箱。
其他基本類型與字符串的相互轉化這裡不再一一列出,方法都類似。
實例:
public class Test{ public static void main(String args[]){ double m = 78.5; //將基本類型轉換為字符串 String str1 = Double.toString(m); System.out.println("m 轉換為String型後與整數20的求和結果為: "+(str1+20)); String str = "180.20"; //將字符串轉換為基本類型 Double a = Double.valueOf(str); System.out.println("str 轉換為double型後與整數20的求和結果為: "+(a+20)); } }
編譯運行結果:
(1)所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類Number的子類。
Number類的成員方法:
(2)Character類
1轉義序列
前面有反斜槓(\)的字符代表轉義字符,它對編譯器來說是有特殊含義的。下面列表展示了Java的轉義序列:
2Character類的成員方法: