自動裝箱與拆箱功能

2021-07-03 14:40:17 字數 1221 閱讀 6592

裝箱(boxing)

int i = 10;

integer

integer = i;

拆箱(unboxing)

integer foointeger =10;

int fooprimitive = foointeger;

自動裝箱與拆箱功能是所謂的編譯程式蜜糖(compilersugar),在使用的過程中容易產生一些不易察覺的錯誤。

integer i = null;

int j = i;

事實上編譯器將上述**轉換為:

integer i = null;

int j = i.intvalue();

integer data1 = 100;

integer data2 = 100;

if(data1 == data2)

system.out.println("data1 == data2");

else

system.out.println("data1 != data2");

上述**將輸出「data1 != data2」,因為100將存放在記憶體中重用,data1與data2指向的事同一塊記憶體,data1 == data2為真。

integer data1 = 200;

integer data2 = 200;

if(data1 == data2)

system.out.println("data1 == data2");

else

system.out.println("data1 != data2");

然而上述**將輸出「data1 != data2」,因為兩個200在記憶體中分別儲存於不同的區域,data1 == data2為假。

integer data1 = 200;

integer data2 = 200;

if (i1.equals(i2))

system.out.println("data1 == data2");

else

system.out.println("data1 != data2");

上述**輸出結果為「data1 == data2」。

最後祝你身體健康,再見。

自動裝箱與自動拆箱

jdk1.5後出現的特性,自動裝箱和自動拆箱 自動裝箱 基本資料型別,直接變成物件 自動拆箱 物件中的資料變回基本資料型別 方便使用 自動裝箱和拆箱弊端,可能出現空指標異常 public class integerdemo 2 關於自動裝箱和拆箱一些題目 public static void fun...

自動裝箱與自動拆箱

j a 中的每一種原始資料型別都有其對應的引用型別 boolean byte char double float int long 和 short 分別對應著 boolean byte character double float integer long 和 short。在處理賦值語句 方法的引數...

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

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