73 你知道什麼是自動裝箱,自動拆箱嗎

2021-10-11 11:02:03 字數 609 閱讀 7597

1、自動裝箱 int 基本資料型別

-----》  integer 包裝型別

這樣的自動轉化的稱為自動裝箱

例子:integer a = 11;

2、自動拆箱 自動拆箱就是自動裝箱反過來

integer 包裝型別

-----》  int 基本資料型別

例子:int b = a;(a是上面那個包裝器型別a)

3.為什麼要用包裝型別

基本資料型別—》資料 包裝類-----》物件

編碼過程中只接收物件的情況,比如list中只能存入物件,不能存入基本資料型別;比如乙個方法的引數是object時,不能傳入基本資料型別,但可以傳入對應的包裝類;比如泛型等等。基本資料型別沒有tostring()方法等

包裝類屬於物件,基本資料型別不是

宣告和使用方式不同。包裝類使用new初始化,有些集合類的定義不能使用基本資料型別,例如 arraylist

初始值不同。包裝類預設值為null,基本資料型別則不同的型別不一樣 儲存方式和位置不同,從而效能不同。基本資料型別儲存在棧(stack)中,包裝類則分成引用和例項,引用在棧(stack)中,具體例項在堆(heap)中。可以通過程式來驗證速度的不同。(來自網路)

直通:

Java中什麼是自動裝箱,什麼是自動拆箱

假設想定義乙個整形陣列列表。而尖括號中的型別引數不允許是基本型別,也就是說,不允許寫成arraylist。這裡就用到了integer物件包裝器類。我們可以宣告乙個integer物件的陣列列表。arraylistlist new arraylist 幸運的是,有乙個很有用的特性,從而更加便於新增int...

裝箱和拆箱,自動裝箱和自動拆箱

以integer的建立為例。裝箱 把基本資料型別轉換成包裝類物件 int integer integer num1 new integer 17 拆箱 把乙個包裝類的物件,轉換成基本型別的變數 integer int int num2 num1.intvalue 自動裝箱 integer num3 ...

自動裝箱 自動拆箱 裝裝裝 拆拆拆

public class testautobox 快取 128,127 實際就是系統初始的時候,建立了 128,127 之間的乙個快取陣列 當我們呼叫valueof 時候,首先檢查是否在 128,127 之間,如果在這個範圍則直接從快取陣列中拿出已經建好的物件 如果不在這個範圍,則建立新的integ...