有時,需要將 int 這樣的基本類型轉換為對象。所有的基本類型都有一個與之對應的類。例如,Integer 類對應基本類型 int。通常,這些類被稱為包裝器(wrapper)。這些對象包裝器類擁有很明顯的名字:Integer、Long、Float、Double、Short、Byte、Character ...
有時,需要將 int 這樣的基本類型轉換為對象。所有的基本類型都有一個與之對應的類。例如,Integer 類對應基本類型 int。通常,這些類被稱為包裝器(wrapper)。這些對象包裝器類擁有很明顯的名字:Integer、Long、Float、Double、Short、Byte、Character、Void 和 Boolean(前 6 個類派生於公共的父類 Number)。對象包裝器類是不可變的,即一旦構造了包裝器,就不允許更改包裝在其中的值。同時,對象包裝器類還是 final,因此不能定義它們的子類。
有一個很有用的特性,從而更加便於添加 int 類型的元素到 ArrayList
相反地,當將一個 Integer 對象賦給一個 int 類型的變數時,將會自動地拆箱。也就是說,編譯器將下列語句:int n = list.get(i); 翻譯成 int n = list.get(i).intValue();。
最後強調一下,裝箱和拆箱是編譯器認可的,而不是虛擬機。編譯器在生成類的位元組碼時,插入必要的方法調用。虛擬機只是執行這些位元組碼。
參考資料
《Java核心技術捲一:基礎知識》(第10版)第 5 章:繼承 5.4 對象包裝器與自動裝箱
本文來自博客園,作者:真正的飛魚,轉載請註明原文鏈接:https://www.cnblogs.com/feiyu2/p/17367902.html