Java中什麼是自動裝箱,什麼是自動拆箱

2021-08-21 16:55:25 字數 672 閱讀 9834

假設想定義乙個整形陣列列表。而尖括號中的型別引數不允許是基本型別,也就是說,不允許寫成arraylist。這裡就用到了integer物件包裝器類。我們可以宣告乙個integer物件的陣列列表。

arraylistlist = new arraylist<>();
幸運的是,有乙個很有用的特性,從而更加便於新增int型別的元素到arraylist中。下面這個呼叫

list.add(3);
將自動換成

list.add(integer.valueof(3));
這種變換就叫做自動裝箱(autoboxing)。

相反的,當將乙個integer物件賦給乙個int值的時候,將會自動拆箱。也就是說,編譯器將下列語句:

int n = list.get(i);
翻譯成:

int n = list.get(i).intvalue();
甚至在算數表示式中也能夠自動的裝箱和自動的拆箱。例如,可以將自增操作應用於乙個包裝器引用:

integer n = 1000;

n++;

編譯器將自動的插入一條物件拆箱的指令,然後進行自增計算,最後再將結果裝箱。

什麼是裝箱和拆箱

裝箱 boxing 和拆箱 unboxing 是.net提出得新概念!net的所有型別都是由基類system.object繼承過來的,包括最常用的基礎型別 int,byte,short,bool等等,就是說所有的事物都是物件。如果申明這些型別得時候都在堆 heap 中分配記憶體,會造成極低的效率!個...

java 什麼是元件

類本身是細粒度可重用體現,但是乙個類一般只實現乙個功能,為了解決功能或機制層面更大粒度重用問題,有引入了元件 component 的概念。元件內部由多個類來協同實現特定的功能。對於複雜的元件,會包括很多類,還有可能包括配置檔案 介面 依賴的庫檔案等。同時,元件也可以包含元件,構成更大粒度的元件。元件...

73 你知道什麼是自動裝箱,自動拆箱嗎

1 自動裝箱 int 基本資料型別 integer 包裝型別 這樣的自動轉化的稱為自動裝箱 例子 integer a 11 2 自動拆箱 自動拆箱就是自動裝箱反過來 integer 包裝型別 int 基本資料型別 例子 int b a a是上面那個包裝器型別a 3.為什麼要用包裝型別 基本資料型別 ...