溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中基本類型與包裝類型的關(guān)系是什么

發(fā)布時(shí)間:2021-08-10 17:45:10 來源:億速云 閱讀:127 作者:Leah 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)Java中基本類型與包裝類型的關(guān)系是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

Java中基本數(shù)據(jù)類型與包裝類型有:

  基本類型    包裝器類型  
booleanBoolean
charCharacter
intInteger
byteByte
shortShort
longLong
floatFloat
doubleDouble

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

  1. int a= 0; 

  2.  Integer a1= new Integer(i);

  • Integer轉(zhuǎn)int

  1. Integer a1= new Integer(0);  

  2. 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ò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI