java基礎 基本資料的自動裝拆箱

2021-06-26 00:53:46 字數 1069 閱讀 1350

1、自動裝箱和拆箱的概念

自動裝箱:是基本資料型別在運算的時候,自動轉換成對應的包裝型別。

自動拆箱:是包裝資料型別在參與運算的時候,自動轉換成基本資料型別參與運算。

例如:integer iobj = 3;//自動裝箱為integer

system.out.prinrtln(iobj + 1);自動拆箱為基本資料型別參加運算

2、裝箱和拆箱的細節:涉及到基本型別的物件快取,

a)        integer i1 = 13;

b)        integer i2= 13;

c)        system.out.prinrtln(i1==i2);

問:裝出來的物件i1,i2是不是同乙個?是。

d)       integer i1 = 137;

e)        integer i2= 138;

問:裝出來的物件i1,i2是不是同乙個?否。

f)         integer  i3 = integer.valueof(3);

g)        integer  i4 = integer.valueof(3);

問:裝出來的物件i1,i2是不是同乙個?是。

原因分析:

如果基本型別的整數要裝箱成integer物件的時候,如果在乙個位元組的範圍內(-128~17),則快取在乙個池裡面。下次如果還要封裝就先到池裡面看有沒有,有的話直接拿來,這樣節約了記憶體空間,因為這些小的整數使用的頻率較高,反覆的出現,如果出現乙個就裝成乙個物件,沒必要。

這是就引入了享元模式。

3、享元模式(flyweight)

有許多的小的物件,有許多屬性相同,把他們變成同乙個物件,不同的屬性變成方法的引數,稱為外部狀態,相同的屬性稱為內部狀態。

4、享元模式的應用:

a)   windows中的圖示:

有許多的資料夾,圖示一樣,只是名字不一樣。這樣把相同的圖示搞成同乙個物件,顯示的時候有顯示的標題和顯示的位置。

b)   字母和符號的列印。

黑馬程式設計師 18基本資料型別的自動拆箱與裝箱

android培訓 ios培訓 期待與您交流!一 自動裝箱與拆箱簡介 自動裝箱 integer num1 12 自動拆箱 system.out.println num1 12 基本資料型別的物件快取 integer num1 12 integer num2 12 這塊相等,127都是真的 syste...

Java 基本資料

1 四種整數型別 byte short int long byte 8 位,用於表示最小資料單位,如檔案中資料,128 127 short 16 位,很少用,32768 32767 int 32 位 最常用,231 1 231 21 億 long 64 位 次常用 注意事項 int i 5 5 叫直...

java基礎一 java基本資料型別

目錄 1整型2小數 浮點 型別 3布林型別 4字元型別 整數型別整數型別有 byte,short,int,long 主要區別是 資料大小範圍。byte 占用記憶體 乙個位元組 8位 範圍 128至127 short 占用記憶體 兩個位元組 16位 範圍 32768至32767 int 占用記憶體 四...