在JAVA程序設(shè)計(jì)中經(jīng)常用到一系列類(lèi)型 ,如int char double 等,可以把他們想像成“基本”類(lèi)型。
它們顯然要特殊對(duì)待,因?yàn)閚ew將對(duì)象存在“堆”里,然而像byte,char這些特別小的,簡(jiǎn)單的變量,放在堆中不是特別有效率
對(duì)于基本類(lèi)型的處理,java采取與C和C++相同的方法。也就是,不用new來(lái)創(chuàng)建變量 ,而是創(chuàng)建一個(gè)并非是引用 的“自動(dòng)”變量。這個(gè)變量直接存儲(chǔ)“值”到棧中,因此更加高效。
然而因?yàn)榛绢?lèi)型不是從JAVA對(duì)象中派生出來(lái)的 ,許多操作完成不了
如:基本數(shù)據(jù)類(lèi)型之間的相互轉(zhuǎn)換不是都可以制動(dòng)轉(zhuǎn)換的 而你強(qiáng)制轉(zhuǎn)換又會(huì)出問(wèn)題,比如String類(lèi)型的轉(zhuǎn)換為int 類(lèi)型的 那么jdk為了方便用戶就提供了相應(yīng)的包裝類(lèi)
[java] view plaincopy
- <span style="font-size:18px;">int a=0;
- String result=Integer.toString(a);</span>
java包裝類(lèi)使用起來(lái)非常靈活- <span style="font-size:18px;">char c ='x';
- Character ch=new Character(c);</span>
也可以這樣用- <span style="font-size:18px;">Character ch=new Character('x');
- 并可以反向轉(zhuǎn)換:
- char c=ch;</span>
例2:第二 有時(shí)候一個(gè)函數(shù)需要傳遞一個(gè)Object的變量 而你想傳遞int類(lèi)型的進(jìn)去顯然不行,怎么辦呢,用到了包裝類(lèi)
- <span style="font-size:18px;">public void test(Object obj){
- }</span>
你想傳遞5進(jìn)去就可以這樣test(new Integer(5));
綜上所述,包裝類(lèi)有兩個(gè)用法 一個(gè)實(shí)現(xiàn)基本類(lèi)型之間的轉(zhuǎn)換 二是便于函數(shù)傳值 就是在一些地方要用到Object的時(shí)候方便將基本數(shù)據(jù)類(lèi)型裝換
原文地址:http://www.software8.co/wzjs/java/1347.html