1. 程式人生 > >java中的自動拆箱、裝箱是指什麼?

java中的自動拆箱、裝箱是指什麼?

JAVA語言中有個名詞叫自動拆箱、裝箱,那這個自動拆箱、裝箱到底是指啥?

自動拆箱、裝箱是從JDK1.5開始才有的特性,其實它主要就是指基本型別與包裝類的自動轉換。

如int 與Integer型別。
int 是基本型別,而Integer是int的包裝類,在JDK1.5之前,int型別的值是不能直接賦給Integer型別的值 的,也就是說
Integer integer = 5; 會報錯,因為5是基本型別,而Integer是包裝類,Integer的正確定義方式為:
Integer integer = new Integer(5); 但是,從基本型別轉換成包裝類是經常使用的操作,尤其是Integer與int的轉換很是頻繁。所以在JDK1.5開始,它們之間的轉換不在須要程式設計師再去進行轉換了,JDK已經將它自動進行了轉換,這種操作就叫自動拆箱、裝箱。

int i = 5;
Integer ii = i;     //這種寫法在JDK1.5及以後的版本是正確的,因為系統會自動將int向Integer進行轉換,這種操作就叫自動裝箱。

int j = ii;         //這種寫法是將Integer的值自動轉換成了int基本型別,這種自動轉換的方法就叫自動拆箱。

不只是int與Integer可以自動轉換,八大基本型別都可以, 以下是八大基本型別及對應的包裝炻

基本型別 byte short int long float double char boolean
包裝型別 Byte Short Integer Long Float Double Character Boolean

其中,int與Integer的轉換最多也最頻繁,所以有一點要注意,也是面試時常問到的問題:
int與Integer的區別:
1.int的預設值 為0,而Integer的預設值為null,在使用Integer前需要初始化。
2.int是基本型別,而Integer是包裝類,可以自動 拆箱、拆箱,Integer封裝了很多的方法,