日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

自动拆箱和装箱

發(fā)布時(shí)間:2025/5/22 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动拆箱和装箱 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在面向?qū)ο缶幊讨?#xff0c;最理想的情況是“一切皆是對(duì)象”,但顯然八個(gè)基本數(shù)據(jù)類(lèi)型不是對(duì)象,如何統(tǒng)一這一問(wèn)題呢?使用包裝類(lèi)。Java 提供了八個(gè)包裝類(lèi),分別對(duì)應(yīng)于八個(gè)基本數(shù)據(jù)類(lèi)型,并且包裝類(lèi)既然是類(lèi),因此也擁有方法和屬性等類(lèi)的特征。

Java 中的八個(gè)類(lèi)如下表所示。

基本類(lèi)型包裝類(lèi)
byteByte
shortShort
intInteger
longLong
doubleDouble
charCharacter
booleanBoolean

自動(dòng)拆箱和裝箱,其目的是方便基本數(shù)據(jù)類(lèi)型和其對(duì)應(yīng)的包裝類(lèi)型之間的轉(zhuǎn)換。開(kāi)發(fā)者可以直接把一個(gè)基本數(shù)據(jù)類(lèi)型的值賦給其包裝類(lèi)型(裝箱),反之亦然(拆箱),中間的過(guò)程由編譯器自動(dòng)完成。

編譯器對(duì)這個(gè)過(guò)程也只是做了簡(jiǎn)單的處理,通過(guò)包裝類(lèi)的 valueOf() 方法對(duì)基本數(shù)據(jù)類(lèi)型進(jìn)行包裝,通過(guò)包裝類(lèi)提供的形如xxxValue() 方法得到其基本數(shù)據(jù)類(lèi)型。具體而言,Integer 中自動(dòng)拆箱的方法是 intValue(),Short 中的是 shortValue(),Float 中的是 floatValue(),Character 中的是 charValue()。例如下面的代碼:

Integer stuAgeI = 23; int stuAge = stuAgeI;

編譯器將其自動(dòng)變換為:

Integer stuAgeI = Integer.valueOf(23); int stuAge = stuAgeI.intValue();

包裝類(lèi)的 valueOf() 方法,對(duì)部分經(jīng)常使用的數(shù)據(jù)采用緩存技術(shù),也就是在未使用的時(shí)候,這些對(duì)象就創(chuàng)建并緩存著,需要使用的時(shí)候不需要新創(chuàng)建該對(duì)象,直接從緩存中獲取即可,從而提高性能。例如 Byte、Integer 和 Long 這些包裝類(lèi)都緩存了數(shù)值在 -128 ~ +127 之間的對(duì)象,自動(dòng)裝箱的時(shí)候,如果對(duì)象值在此范圍之內(nèi),則直接返回緩存的對(duì)象,只有在緩存中沒(méi)有的時(shí)候再去創(chuàng)建一個(gè)對(duì)象。

總結(jié)

以上是生活随笔為你收集整理的自动拆箱和装箱的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。