java基本型別和包裝器類【轉】
java是一種面嚮物件語言,java中的類把方法與資料連線在一起,並構成了自包含式的處理單元.但在java中不能定義基本型別(primitive type),為了能將基本型別視為物件來處理,並能連線相關的方法,java為每個基本型別都提供了包裝類,這樣,我們便可以把這些基本型別轉化為物件來處理了.這些包裝類有:Boolean,Byte,Short,Character,Integer,Long,Float,Double,Void共9個(注意:Date不是,無其基本型別).
一、 包裝類(Wrapper Class)共同的方法
值得說明的是,java是可以直接處理基本型別的,但是在有些情況下我們需要將其作為物件來處理,這時就需要將其轉化為包裝類了.所有的包裝類(Wrapper Class)都有共同的方法,他們是:
(1)帶有基本值引數並建立包裝類物件的建構函式.如可以利用Integer包裝類建立物件,Integer obj=new Integer(145);
(2)帶有字串引數並建立包裝類物件的建構函式.如new Integer("-45.36");
(3)可生成物件基本值的typeValue方法,如obj.intValue();
(4)將字串轉換為基本值的 parseType方法,如Integer.parseInt(args[0]);
(5)生成哈稀表程式碼的hashCode方法,如obj.hasCode();
(6)對同一個類的兩個物件進行比較的equals()方法,如obj1.eauqls(obj2);
(7)生成字串表示法的toString()方法,如obj.toString().
轉換關係:
基本型別------>包裝器類
Integer obj=new Integer(145);
包裝器類------>基本型別
int num=obj.intValue();
字串------>包裝器類
Integer obj=new Integer("-45.36");
包裝器類------>字串包裝器類
String str=obj.toString();
字串------>基本型別
int num=Integer.parseInt("-45.36");
基本型別------>字串包裝器類
String str=String.valueOf(5);
在一定的場合,運用java包裝類來解決問題,能大大提高程式設計效率.
二、JDK1.5的新特性:自動裝包/拆包(Autoboxing/unboxing)
自動裝包/拆包大大方便了基本型別資料和它們包裝類地使用。
自動裝包:基本型別自動轉為包裝類.(int >> Integer)
自動拆包:包裝類自動轉為基本型別.(Integer >> int)
在JDK1.5之前,我們總是對集合不能存放基本型別而耿耿於懷,現在自動轉換機制
解決了我們的問題。
int a = 3;
Collection c = new ArrayList();
c.add(a);//自動轉換成Integer.
Integer b = new Integer(2);
c.add(b + 2);
這裡Integer先自動轉換為int進行加法運算,然後int再次轉換為Integer.
三、包裝類(Wrapper Class)常用其他方法
String類: