自動裝箱和自動拆箱

一、基本介紹

包裝類的作用: Java 語言中,一切都是對象,但是有例外: 8 個基本數(shù)據(jù)類型不是對象,因此在很多時候非常不方便。 為此, Java提供為 8 個基本類型提供了對應的包裝類:

byte ------- Byte

short ------ Short

int ----------?Integer

long -------- Long

char -------- Character

float -------- Float? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?double ----- Double

boolean----- Boolean

包裝類如何使用?JDK1.5, 新增了 2 個功能:自動裝箱、自動拆箱。

自動裝箱:當我們把一個基本類型的值( 20),賦值給引用變量時候,系統(tǒng)可以 自動將它“包裝”為相應的包裝類的實例程序需要對象時, 如果給的只是一個基本類型的值, 系統(tǒng)會將它自動裝箱為包裝類的實例達到的效果: 有了自動裝箱之后, 基本類型的值可以當成對象用—— 其實是【假相】 。

自動拆箱: 當我們需要一個基本類型的值時, 但實際上傳入的包裝類的對象。 系 統(tǒng)會自動把對象“剝”開,得到它的值。 達到的效果: 有了自動拆箱之后, 包裝類的對象可當成基本類型的值 用——其實是【假相】 。

事實上,包裝類比基本類型更好用——基本類型能做的事情,包裝類也能做。 但包裝類能做的,基本類型不一定能做,比 如要賦一個 null 值。

二、裝箱和拆箱是如何實現(xiàn)的

從反編譯得到的字節(jié)碼內容可以看出,在裝箱的時候自動調用的是Integer的valueOf(int)方法。而在拆箱的時候自動調用的是Integer的intValue方法。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容