Java中的裝箱(boxing)和拆箱(unboxing)指的是將基本數據類型轉換為對應的包裝類型對象和將包裝類型對象轉換為對應的基本數據類型。
裝箱通常是通過使用構造函數或靜態工廠方法來創建一個包裝類型對象,例如:
int i = 10;
Integer boxedInt = new Integer(i); //使用構造函數將int類型i裝箱為Integer類型
Integer boxedInt2 = Integer.valueOf(i); //使用靜態工廠方法將int類型i裝箱為Integer類型
拆箱是指將包裝類型對象轉換為對應的基本數據類型,通常是通過調用包裝類型的xxxValue()方法來實現,例如:
Integer boxedInt = new Integer(10);
int i = boxedInt.intValue(); //將Integer類型boxedInt拆箱為int類型
在Java 5之前,裝箱和拆箱是比較低效的操作,因為會頻繁地創建和銷毀對象,導致內存消耗大和垃圾回收開銷大。但是自Java 5起,Java引入了自動裝箱和拆箱的機制,使得直接使用基本數據類型和包裝類型之間的轉換變得更加方便和高效。