夯實(shí)基礎(chǔ):Java數(shù)據(jù)類型的包裝類

夯實(shí)基礎(chǔ):Java數(shù)據(jù)類型的包裝類

長沙一度軟件培訓(xùn)      2022-04-01 22:40:01     6

夯實(shí)基礎(chǔ):Java數(shù)據(jù)類型的包裝類,什么是包裝類型Java設(shè)計(jì)當(dāng)初就提供了8種基本數(shù)據(jù)類型及對(duì)應(yīng)的8種包裝數(shù)據(jù)類型。我們知道Java是一種面向?qū)ο缶幊痰母呒?jí)語言,所以

課程價(jià)格 請咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

什么是包裝類型

Java設(shè)計(jì)當(dāng)初就提供了8種基本數(shù)據(jù)類型及對(duì)應(yīng)的8種包裝數(shù)據(jù)類型。我們知道Java是一種面向?qū)ο缶幊痰母呒?jí)語言,所以包裝類型正是為了解決基本數(shù)據(jù)類型無法面向?qū)ο缶幊趟峁┑摹?/p>

下面是基本數(shù)據(jù)類型與對(duì)應(yīng)的包裝類型。

下面是包裝類型的繼承結(jié)構(gòu)圖。

從以上圖表可以對(duì)基本類型和包裝類型有一個(gè)全面的了解。

包裝類應(yīng)用場景

1.集合類泛型只能是包裝類;

//編譯報(bào)錯(cuò)Listlist1=newArrayList<>();//正常Listlist2=newArrayList<>();

2.成員變量不能有默認(rèn)值;

privateintstatus;

基本數(shù)據(jù)類型的成員變量都有默認(rèn)值,如以上代碼status默認(rèn)值為0,如果定義中0代表失敗,那樣就會(huì)有問題,這樣只能使用包裝類Integer,它的默認(rèn)值為null,所以就不會(huì)有默認(rèn)值影響。

3.方法參數(shù)允許定義空值;

privatestaticvoidtest1(intstatus){System.out.println(status);}

看以上代碼,方法參數(shù)定義的是基本數(shù)據(jù)類型int,所以必須得傳一個(gè)數(shù)字過來,不能傳null,很多場合我們希望是能傳遞null的,所以這種場合用包裝類比較合適。

還有更多應(yīng)用場景就不一一例舉了,歡迎留言共同探討包裝類的更多的應(yīng)用場景。

自動(dòng)裝箱、拆箱

Java5增加了自動(dòng)裝箱、拆箱機(jī)制,提供基本數(shù)據(jù)類型和包裝類型的相互轉(zhuǎn)換操作。

自動(dòng)裝箱

自動(dòng)裝箱即自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)換成包裝類型,在Java5之前,要將基本數(shù)據(jù)類型轉(zhuǎn)換成包裝類型只能這樣做,看下面的代碼。

Integeri1=newInteger(8);Integeri2=Integer.valueOf(8);//自動(dòng)裝箱Integeri3=8;

以上3種都可以進(jìn)行轉(zhuǎn)換,但在Java5之前第3種方法是編譯失敗的,第3種方法也正是現(xiàn)在的自動(dòng)裝箱功能。另外,第一種構(gòu)造器方法也不推薦使用了,已經(jīng)標(biāo)為廢棄了。

其實(shí)自動(dòng)裝箱的原理就是調(diào)用包裝類的valueOf方法,如第2個(gè)方法中的Integer.valueOf方法。

自動(dòng)拆箱

自動(dòng)拆箱即自動(dòng)將包裝類型轉(zhuǎn)換成基本數(shù)據(jù)類型,與自動(dòng)裝箱相反,有裝就有拆,很好理解。

//自動(dòng)拆箱inti4=i3;inti5=i3.intValue();

繼續(xù)上面的例子,把i3賦值給i4就是實(shí)現(xiàn)的自動(dòng)拆箱功能,自動(dòng)裝箱的原理就是調(diào)用包裝類的xxValue方法,如i5中的Integer的intValue方法。

自動(dòng)裝箱、拆箱不只是體現(xiàn)在以上的例子,在方法接收參數(shù)、對(duì)象設(shè)置參數(shù)時(shí)都能自動(dòng)裝箱拆箱。

需要注意的是,關(guān)于Integer,-128~127會(huì)有緩存,對(duì)比這個(gè)范圍的值的對(duì)象是一個(gè)坑,這個(gè)在阿里巴巴規(guī)范中也有提及。

以上就是長沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“夯實(shí)基礎(chǔ):Java數(shù)據(jù)類型的包裝類”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。