裝箱與拆箱

2021-09-02 16:39:16 字數 549 閱讀 5140

public class integertest

}

執行結果:

false

true

解釋:integer.class

// 建立快取陣列

private static class integercache

static final integer cache = new integer[-(-128) + 127 + 1];

static

}

// 取值

public static integer valueof(int i)

return new integer(i);

}

從原始碼中看:

-127至128之間的數值在快取中存放,每次取值時都是從快取中取得,故每次都是同樣的值;

否則,則會新建立物件,故通過 == 比較時返回false

裝箱與拆箱

總結來說 裝箱就是將值型別轉化成引用型別,拆箱就是就是將引用型別轉化成值型別 裝箱 int n 10 string s n.tostring 這個不是裝箱。string與int是完全不同的兩種型別,沒有父子類關係,所以不可能發生裝箱和拆箱,因為本身就不具備型別直接轉換的功能。console.writ...

拆箱與裝箱

裝箱 把基本型別的資料,包裝到包裝類中 基本資料型別資料 包裝類 構造方法 integer int value 構造乙個新分配的integer物件,他表示指定的int值。integer string s 構造乙個新分配的integer物件,他表示string引數所指示的int值。傳遞的字串必須是基本...

裝箱與拆箱

裝箱與拆箱 裝箱是將值型別轉換為引用型別或者是值型別 如 結構 實現任一介面型別的過程。當 clr 對值型別進行裝箱時,會將該值包裝到 system.object 內部。再將後者儲存在託管堆上。拆箱就是將從物件中提取值型別或者介面型別到實現該介面的值型別的顯式轉換。裝箱時隱性的,拆箱是顯式的。裝箱裝...