一.裝箱 拆箱的概念
Java中的基本數據類型都提供了對應的包裝類,在java中一切都是對象,而且基本數據類型不是對象,因此在很多時候使用都不太方便,例如類型之間的轉換,泛型使用,而提供對應的包裝類就可以進行彌補,那爲什麼還需要基本數據類型,有興趣的可以去查一下,跟設計性能內存有關
基本數據類型對應的包裝類
int(4字節)-Integer
byte(1字節)-Byte
short(2字節)-Short
long(8字節)-Long
float(4字節)-Float
double(8字節)-Double
char(2字節)-Character
boolean-Boolean
1.自動裝箱 :將基本數據類型轉換爲包裝器類型
2.自動拆箱 : 將包裝器類型轉換爲基本數據類型
Integer i = 10; //裝箱
int n = i; //拆箱
二.如何實現
裝箱過程是通過調用包裝器的valueOf方法實現的,而拆箱過程是通過調用包裝器的 xxxValue方法實現的。(xxx代表對應的基本數據類型)。
可以寫一個程序,然後打個斷點來查看
三.裝箱拆箱的優缺點
優點:提供數據的轉換
缺點:編程過程中如果不留意,容易在代碼中有陷阱,例如:當封裝類與基礎類型進行==運算時,封裝類會進行拆箱,得到的結果可能就與我們預期不一樣
使用原則:
1.能不用對象儘量不用,因爲基本類型的運算遠遠快於對象的運算;
2.不得不用對象時,採用自動裝箱或手動轉性能差不了多少;