在Java中,我們經(jīng)常需要將基本數(shù)據(jù)類型轉(zhuǎn)換成對象類型。這個過程叫做“裝箱”。另一方面,在某些場景中我們需要將對象類型轉(zhuǎn)換成基本數(shù)據(jù)類型。這個過程叫做“拆箱”。
舉個例子,我們定義了一個int類型的變量,如果要將它轉(zhuǎn)換成Integer對象,就需要使用裝箱過程。如下所示:
int a = 10; Integer b = new Integer(a);
反之,如果要將Integer對象轉(zhuǎn)換成int類型的變量,就需要使用拆箱過程。如下所示:
Integer a = new Integer(10); int b = a.intValue();
在Java 5.0版本之后,Java引入了自動裝箱和自動拆箱機(jī)制。使用自動裝箱,我們可以將基本數(shù)據(jù)類型直接賦值給對應(yīng)的對象類型,如下所示:
Integer a = 10;
這樣,編譯器會自動進(jìn)行裝箱操作。
同樣地,使用自動拆箱,我們可以直接將對象類型賦值給基本數(shù)據(jù)類型,如下所示:
Integer a = new Integer(10); int b = a;
這樣,編譯器會自動進(jìn)行拆箱操作。
自動裝箱和自動拆箱的原理是將基本類型和對應(yīng)的封裝類型建立聯(lián)系,以便編譯器可自動進(jìn)行相應(yīng)的裝箱和拆箱操作。