裝箱:將一個數據項(副本)從棧中自動複製到堆中的行爲。
int i = 8;
object o = i; // 裝箱 // 首先在堆中開闢出一片區域,再將 i 的一個副本放在該區域中。
// 所有引用都必須引用堆上的對象
引用關係如下所示:
PS:o 和 i 的改變將互不影響,因爲裝箱使用的是 i 的一個副本。
拆箱:將一個數據項(副本)從堆中自動複製到棧中的行爲。
int i = 8;
object o = i; // 裝箱
i = (int)o; // 拆箱 // 此處使用強制類型轉換(cast)
引用關係如下所示:
PS:o 和 i 的改變將互不影響(已驗證)。