java中有了基本類型為什麼還要有封裝類型?__JAVA

來源:互聯網
上載者:User

Java中基礎資料型別 (Elementary Data Type)與封裝類型有:

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

 

 

 

 

 

 

 



為什麼存在這兩種類型呢。

我們都知道在Java語言中,new一個Object Storage Service在堆裡,我們通過棧中的引用來使用這些對象;但是對於經常用到的一系列類型如int,如果我們用new將其儲存在堆裡就不是很有效——特別是簡單的小的變數。所以就出現了基本類型,同C++一樣,Java採用了相似的做法,對於這些類型不是用new關鍵字來建立,而是直接將變數的值儲存在棧中,因此更加高效。


有了基本類型為什麼還要有封裝類型呢。

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

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

二者相互轉換:

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時會使用到。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.