面向對象系列九
包裝類變量
一、裝箱
1.實例化包裝對象
2.靜態緩存池
3.寫法
二、拆箱
包裝類變量
每個基本數據類型都有對應的基本類型的包裝類變量,將基本數據類型通過對應的包裝類對象載入著進入到類與對象面向對象體系
一、裝箱
Integer.valueOf(int)
—> return Integer
實例化創建這個整數對應的包裝似復刻變量對象
1.實例化包裝對象
實例化包裝類對象時,可以通過new Integer(int)實例化創建一個包含這個整數的包裝類的似復刻變量,但我們一般都使用Integer類變量里面的靜態方法valueOf(int)來實例化創建包上它這個整數的包裝類對象
2.靜態緩存池
每個包裝類變量里面都有一個靜態的數組引用變量成員cache[],它指向一個-128到127整數對應好已創建的包裝類似復刻變量的似復刻變量引用數組,共裝有256個已創好的包裝類似復刻變量引用,直接已經創好可以直接供對應的-128~127這些整數使用的
用Integer.valueOf(int) 調用創建-128~127對應的包裝似復刻變量的時候,它是直接返回數組引用里指向的對應已創好的似復刻變量引用,因此調用valueOf取包裝類對象時-128~127整數的對應包裝類對象是不用去創建直接取到的效率會很快,如果調用valueOf創建對象的數字在-128~127以外的,就會去new創建新的包裝類對象去實現包裝
3.寫法
Integer iger?= 10;其實是省略了Integer靜態方法valueOf的調用
—> Integer.valueOf(10) return Integer,即實現了自動裝箱
二、拆箱
iger.intValue()
—> return int
將此包裝類對象里面裝的基本類型數據返回
此方法是非靜態方法,使用時也是省略隱式寫的:
double a = iger;省略了它非靜態方法的調用?
—> double a = iger.intValue() return int
包裝類里面只有它對應基本類型數據的轉化方法,即iger只有intValue整型包裝類轉對應整型數據的方法,它這里是先通過iger.intValue()返回了整數10,然后整數10進行了int向double的隱式類型提升