Java中的基本類型和包裝類


Java中基本數據類型與包裝類型有

  基本類型     包裝器類型  
boolean Boolean
char Character
int Integer
byte Byte
short Short
long Long
float Float
double Double

存在基本類型對應包裝類的原因:

  基本數據類型存方在棧中,效率更高

  new出來的對象存在於堆中(通過棧中的引用來使用這些對象),是一個對象,因此具有更多的諸如“轉換”的方法

包裝類型的意義

  Java是一個面相對象的編程語言,基本類型並不具有對象的性質,為了讓基本類型也具有對象的特征,就出現了包裝類型(如我們在使用集合類型Collection時就一定要使用包裝類型而非基本類型),它相當於將基本類型“包裝起來”,使得它具有了對象的性質,並且為其添加了屬性和方法,豐富了基本類型的操作。

另外,當需要往ArrayList,HashMap中放東西時,像int,double這種基本類型是放不進去的,因為容器都是裝object的,這是就需要這些基本類型的包裝器類了。

 

基本類型和包裝類轉換:

以int和Integer為例(Java5前):

1.int轉Integer

int i = 0;
Integer ii = new Integer(i);

2.Integer轉int

Integer ii = new Integer(0);
int i = ii.intValue(); 

 

基本類型和包裝類的區別:

1. 聲明方式不同:

基本類型不使用new關鍵字,而包裝類型需要使用new關鍵字來在堆中分配存儲空間; 

2. 存儲方式及位置不同:

基本類型是直接將變量值存儲在棧中,而包裝類型是將對象放在堆中,然后通過引用來使用;

 3. 初始值不同:

基本類型的初始值如int為0,boolean為false,而包裝類型的初始值為null;‘

 4. 使用方式不同:

基本類型直接賦值直接使用就好,而包裝類型在集合如Collection、Map時會使用到。

 

自動裝箱和拆箱

在Java SE5之前,如果要生成一個數值為10的Integer對象,必須這樣進行:

Integer i = new Integer(10);

而在從Java SE5開始就提供了自動裝箱的特性,如果要生成一個數值為10的Integer對象,只需要這樣就可以了:

Integer i = 10;

這個過程中會自動根據數值創建對應的 Integer對象,這就是裝箱。

 

那什么是拆箱呢?顧名思義,跟裝箱對應,就是自動將包裝器類型轉換為基本數據類型:

Integer i = 10;  //裝箱
int n = i;   //拆箱

裝箱就是  自動將基本數據類型轉換為包裝器類型;拆箱就是  自動將包裝器類型轉換為基本數據類型。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM