您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Java中基本類型與包裝類型的關(guān)系是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
Java中基本數(shù)據(jù)類型與包裝類型有:
基本類型 | 包裝器類型 |
boolean | Boolean |
char | Character |
int | Integer |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
1、為什么存在這兩種類型呢?
我們都知道在Java語言中,new一個(gè)對(duì)象存儲(chǔ)在堆里,我們通過棧中的引用來使用這些對(duì)象;但是對(duì)于經(jīng)常用到的一系列類型如int,如果我們用new將其存儲(chǔ)在堆里就不是很有效——特別是簡單的小的變量。所以就出現(xiàn)了基本類型,同C++一樣,Java采用了相似的做法,對(duì)于這些類型不是用new關(guān)鍵字來創(chuàng)建,而是直接將變量的值存儲(chǔ)在棧中,因此更加高效。
2、有了基本類型為什么還要有包裝類型呢?
我們知道Java是一個(gè)面向?qū)ο蟮木幊陶Z言,基本類型并不具有對(duì)象的性質(zhì),為了讓基本類型也具有對(duì)象的特征,就出現(xiàn)了包裝類型(如我們?cè)谑褂眉项愋蜁r(shí)就一定要使用包裝類型而非基本類型),它相當(dāng)于將基本類型“包裝起來”,使得它具有了對(duì)象的性質(zhì),并且為其添加了屬性和方法,豐富了基本類型的操作, 提高代碼的效率。
當(dāng)需要往ArrayList,HashMap等集合中放東西時(shí),像int,double這種基本類型是放不進(jìn)去的,因?yàn)槿萜鞫际茄bobject的,這時(shí)候就需要這些基本類型的包裝類了。
3、二者相互轉(zhuǎn)換:
int轉(zhuǎn)Integer
int a= 0;
Integer a1= new Integer(i);
Integer轉(zhuǎn)int
Integer a1= new Integer(0);
int a = a1.intValue();
4、二者的區(qū)別:
1. 聲明方式不同:
基本類型不使用new關(guān)鍵字,而包裝類型需要使用new關(guān)鍵字來在堆中分配存儲(chǔ)空間;
2. 存儲(chǔ)方式及位置不同:
基本類型是直接將變量值存儲(chǔ)在棧中,而包裝類型是將對(duì)象放在堆中,然后通過引用來使用;
3. 初始值不同:
基本類型的初始值如 int 為0,而包裝類型( Integer )的初始值為null;
4. 使用方式不同:
基本類型直接賦值直接使用就好,而包裝類型在集合如List, Map時(shí)會(huì)使用到。
關(guān)于Java中基本類型與包裝類型的關(guān)系是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。