Java有裝箱和拆箱
把基本數(shù)據類型轉換成包裝類的過程就是打包裝,英文對應于boxing,中文翻譯為裝箱。
反之,把包裝類轉換成基本數(shù)據類型的過程就是拆包裝,英文對應于unboxing,中文翻譯為拆箱。
自動裝箱與拆箱
在Java SE5中,為了減少開發(fā)人員的工作,Java提供了自動拆箱與自動裝箱功能。
自動裝箱: 就是將基本數(shù)據類型自動轉換成對應的包裝類。
自動拆箱:就是將包裝類自動轉換成對應的基本數(shù)據類型。
Integer i =10; //自動裝箱
int b= i; //自動拆箱
自動裝箱和自動拆箱原理其實是使用valueOf()和xxValue() 方法實現(xiàn)
Interger i = Interger.valueOf(10);
int b = intValue(i);
經典案例
三目運算符如果操作數(shù)有對象會發(fā)生自動拆箱
boolean flag = true;
Integer i = 0;
int j = 1;
int k = flag ? i : j;
當i為null時,由于會自動拆箱導致報錯空指針異常