1、包裝類(lèi)型可以為 null,而基本類(lèi)型不可以
它使得包裝類(lèi)型可以應(yīng)用于 POJO 中,而基本類(lèi)型則不行。
《阿里巴巴 Java 開(kāi)發(fā)手冊(cè)》上有詳細(xì)的說(shuō)明
數(shù)據(jù)庫(kù)的查詢(xún)結(jié)果可能是 null,如果使用基本類(lèi)型的話(huà),因?yàn)橐詣?dòng)拆箱(將包裝類(lèi)型轉(zhuǎn)為基本類(lèi)型,比如說(shuō)把 Integer 對(duì)象轉(zhuǎn)換成 int 值),就會(huì)拋出 NullPointerException 的異常。
2、包裝類(lèi)型可用于泛型,而基本類(lèi)型不可以
編譯時(shí)會(huì)報(bào)錯(cuò)
3、基本類(lèi)型比包裝類(lèi)型更高效
因?yàn)榘b類(lèi)型是對(duì)象,存在堆中,基本類(lèi)型直接從棧中取值
4、自動(dòng)裝箱和自動(dòng)拆箱
把基本類(lèi)型轉(zhuǎn)換成包裝類(lèi)型叫做裝箱(boxing),反之叫拆箱(unboxing)
自動(dòng)裝箱是通過(guò)Integer.valueOf()完成的,自動(dòng)拆箱是通過(guò)intValue()完成的