在java中有八種基本數(shù)據(jù)類型對(duì)應(yīng)每種基本類型又有八種包裝類型:
基本類型:boolean, char, int, byte,short,long, float,double
包裝器類型:Boolean,Character,Integer,Byte,Short,Long,F(xiàn)loat,Double
從上面我們可以看到除了 char和int其它的包裝類型名稱和對(duì)應(yīng)的基本類型一樣只是首字母大寫了。
在某些場(chǎng)合不能使用基本類型必須使用包裝類,比如集合能接收的類型為Object,基本類型是無(wú)法添加進(jìn)去的,還有泛型也必須使用包裝類。
另外假設(shè)我們要定義一個(gè)變量表示分?jǐn)?shù) 如果用基本類型表示的話:int score;
默認(rèn)值為零,如果我想表示分?jǐn)?shù)為空也就是沒(méi)有參加考試就沒(méi)法表現(xiàn)了因?yàn)橹殿愋褪菬o(wú)法賦空值的,如果使用包裝類型Integer score,就可以表示這種情況,因?yàn)镮nteger的默認(rèn)值為空。
包裝類型是引用類型,說(shuō)白了就是一個(gè)類,既然是類,里面可以有屬性和方法,它里面有哪些屬性和方法呢?每個(gè)包裝類型和基本數(shù)據(jù)類型都是大同小異的,我們拿Integer 和 int來(lái)舉例說(shuō)明:
假設(shè)有這樣一個(gè)場(chǎng)景,我接收到一個(gè)String型的數(shù)據(jù)想把它轉(zhuǎn)換為整型,如果沒(méi)有包裝類這個(gè)操作是無(wú)法完成的,有了包裝類我們可以這樣做:
String num1 = "123";
int num2 = Integer.parseInt(num1);
parseInt就是Integer包裝類提供的一個(gè)將字符串轉(zhuǎn)成int型的方法。
為什么會(huì)有包裝類?
1.包裝類里面有一些很有用的方法和屬性,如HashCode,ParseInt
2.基本類型不能賦null值,某些場(chǎng)合需要。
3.有些地方不能直接用基本類型,比如集合.
什么時(shí)候用包裝類,什么時(shí)候用基本類型?
1.在pojo類中定義的屬性用包裝類
2.在rpc方法中定義參數(shù)和返回值的類型用包裝類
3.定義局部變量用基本類型