拆箱和裝箱

2021-10-14 02:53:49 字數 771 閱讀 1311

裝箱:基本型別轉變為包裝器型別的過程。

拆箱:包裝器型別轉變為基本型別的過程。

以integer為例分析自動裝箱和拆箱的過程,先看一組**

從原始碼來分析結果,integer有value屬性,型別為int,對於1處和4處會觸發自動裝箱,即執行valueof方法

由上原始碼可知裝箱時當i>=-128,i<=integercache.high(預設127)會自動從內部類integercache的cache陣列中拿取物件,超出這個範圍則new物件,1處在返回內,會拿取同一快取物件,4處不在範圍內,會直接new物件,所以1處返回true,4處返回false,2處i是快取物件,j是new,返回false.

3,5處是equals返回,integer進行了重寫,比較的是value

6處會進行拆箱,即呼叫intvalue返回基本型別

裝箱和拆箱,自動裝箱和自動拆箱

以integer的建立為例。裝箱 把基本資料型別轉換成包裝類物件 int integer integer num1 new integer 17 拆箱 把乙個包裝類的物件,轉換成基本型別的變數 integer int int num2 num1.intvalue 自動裝箱 integer num3 ...

裝箱和拆箱

在c 中的有兩種型別的變數 值型別和引用型別。當值型別和引用型別相互轉化時,會發生裝箱和拆箱的過程。這裡有一點要宣告 經過拆箱或裝箱的物件會多出它自己乙份拷貝,如圖所示 從圖可以看出它和它的拷貝不在乙個儲存區域。這也是值型別和引用型別的區別所在。值型別總是在棧中,而引用型別總是在託管堆中。目前j2s...

裝箱和拆箱

裝箱 boxing 和拆箱 unboxing 是c 型別系統中重要的概念。它通過允許任何數值型別的資料被轉換為任何形式型別的物件提供了數值型別和引用型別間的緊密聯絡。裝箱和拆箱使得對在其中任何型別都可以最終被看作物件的型別系統的統一的觀察變為可能。裝箱轉換允許任何數值型別可以隱式地轉換為 objec...