裝箱(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 ...