Java中的基本類型與封裝類型以及自動裝箱、拆箱

      Java中的類型分爲原始類型和對應的封裝類型(裝箱類型),基本類型包括byte字節型(一個字節)、char字符型(兩個字節)、short短整型(兩個字節)、int整型(四個字節)、long長整型(八個字節)、float浮點型(四個字節)、double 雙精度浮點型(八個字節)、boolean型(一個字節)八種類型,對應的封裝類型分別是Byte、Character、Short、Integer、Long、Float、Double、和Boolean。

       基本類型和封裝類型主要存在三個方面的區別:1.基本類型只有值,而兩個封裝類型可以有相同的值和不同的同一性;2.基本類型只有功能完備的值,而封裝類型除此之外還有非功能值:null;3.基本類型比封裝類型更節省空間和時間。

       Java1.5發行版本增加了自動裝箱(autoboxing)和自動拆箱(autounboxing)功能,提供了基本類型和封裝類型的相互轉換。自動裝箱實現了基本類型向封裝類型的轉換,如下面的代碼。

Integer number = 10;

      實際的執行代碼是:

Integer number = new Integer(10);

      對於自動拆箱,形如下代碼:

Integer number = 10;
int number2 = number;

      實際執行的代碼爲:

int number2 = number.intValue();
     當在一項操作中混合使用基本類型和封裝類型時,封裝類型就會自動拆箱。

     封裝類型最好不要過度用,否則會影響性能,如下情形可以合理使用。作爲集合中的元素、鍵和值,在參數化類型中必須使用封裝類型作爲類型參數,如不能聲明ThreadLocal<int>類型,而是ThreadLocal<Integer>;在進行反射的方法調用時必須使用封裝類型。


發佈了46 篇原創文章 · 獲贊 14 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章