(1)封箱:
是把值型別轉換為system.object型別(引用型別),或者轉換為值型別實現的介面型別。
【注:】引用型別和值型別見 2
(2)拆箱:
是將引用型別轉換為值型別。
經典**:
int i = 5;
object obj = i; //封箱
int j = (int)obj; //拆箱
(1)值型別:
值型別在記憶體的同乙個地方儲存它們自己和他們的內容
(2)引用型別:
引用型別的儲存記憶體指向記憶體中其他某個位置(稱為堆)的引用,類似於指標,實際內容儲存在指向的位置。
【注:】string和object型別都是簡單的引用型別,陣列是隱式的引用型別
(1)封箱是在沒有使用者干涉的情況下進行的(封箱是隱式的,即不需要編寫任何**,不需要進行資料型別轉換),但是拆箱乙個值必須進行顯示的轉換,即需要進行資料型別的轉換。
(2)封箱的作用:首先,它允許在項的型別是object的集合(如arraylist)中使用值型別。其次,有乙個內部機制允許在值型別(如int和結構)上呼叫object方法。
(3)在訪問值型別內容前,必須進行拆箱。
Interger拆箱和封箱
自動裝包 基本型別自動轉為包裝型別.int integer 自動拆包 包裝型別自動轉為基本型別.integer int 裝箱原始碼邏輯 128 127返回 interger cache中的值 public static integer valueof int i demo interger的裝箱和拆...
自動封箱和拆箱
integer 中 public static integer valueof int i 如果沒有設定integercache.high的值,預設為127,也就是說值在 128 127之間,返回的都是同乙個物件。integerf1 100,f2 100,f3 150,f4 150 system.o...
c 經典入門學習筆記 封箱和拆箱
封箱和拆箱,這個概念在以前的程式語言的學習中,從未聽到過,現在先說一下封箱的概念是把值型別轉換為object型別,或者轉換為由值型別實現的介面型別。在這裡有個值型別是個什麼概念呢?我是這樣理解的,所謂值型別就是指像int string之類的簡單型別,像集合 陣列應該就不是值型別還應該歸為物件型別。下...