1. 程式人生 > >java 1.5 自動拆箱和裝箱的注意事項

java 1.5 自動拆箱和裝箱的注意事項

背景

java1.5後引入了自動裝箱和自動拆箱的概念

自動拆箱:將引用型別轉化為基本資料型別

自動裝箱:將基本資料型別裝為引用型別

但是實際使用中,什麼情況自動拆箱什麼情況自動裝箱呢?

自動裝箱

Integer i = 100;   (呼叫Integer.valueOf(100))  這裡存在一個快取變數  -128~127 ,如果基本資料型別在此範圍內,則使用快取的物件,否則new Integer(number)

自動拆箱

//第一種情況
Integer i = 100;
int x = i;   (呼叫 i.initValue())
//第二種情況
Integer  i = 100;
int x = 100; System.out.println(i == 100)

自動填坑

---------1-----------
Integer a = 100;
Integer b = 100;
a == b   //結果是true
----------2----------
Integer a = 200;
Integer b = 200;
a == b   //結果是false    包裝型別的比較,用equals()
-----------3---------
Integer a = 200;
int b = 200;
a == b   //結果是true
-----------4---------
Integer a 
= 200; int b = 200; a.equals(b) //結果是true ------------5-------- Long a = 200; int b = 200; a.equals(b) //結果是false 如果型別不同一定為false