欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java裝箱和拆箱的底層

黃文隆1年前5瀏覽0評論

在Java中,有兩個常見的概念叫做裝箱(Boxing)和拆箱(Unboxing)。裝箱是指將一個基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型(整型轉(zhuǎn)為Integer、布爾型轉(zhuǎn)為Boolean等),而拆箱則是相反的操作(將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型)。

那么,在Java中這兩個操作是怎樣實現(xiàn)的呢?其實,最底層的實現(xiàn)還是涉及到基本數(shù)據(jù)類型和包裝器類型之間的轉(zhuǎn)換。

//裝箱
int i = 1;
Integer integer = Integer.valueOf(i);
//拆箱
Integer integer = new Integer(2);
int i = integer.intValue();

在上述代碼中,我們可以看到使用了對應(yīng)包裝器類型的valueOf()和xxxValue()方法,這些方法都是在valueOf()和xxxValue()方法所在的包裝器類型中被定義的。

當我們給一個包裝器類型賦值,或者調(diào)用構(gòu)造方法創(chuàng)建對象時,底層會進行自動裝箱(轉(zhuǎn)換成包裝器類型)。例如:

Integer integer1 = 1; //自動裝箱
Boolean boolean1 = true; //自動裝箱

而拆箱則和裝箱類似,只是方向相反。當我們需要獲取一個包裝器類型中的基本數(shù)據(jù)類型時,就需要使用xxxValue()方法進行拆箱。例如:

Integer integer2 = new Integer(3);
int i = integer2.intValue(); //手動拆箱

在對于Java的裝箱和拆箱進行深入學(xué)習(xí)之前,了解底層實現(xiàn)原理對于理解和使用其它高級特性會有很大的幫助。