Java中的裝箱 拆箱

一.裝箱 拆箱的概念
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.不得不用對象時,採用自動裝箱或手動轉性能差不了多少;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章