自動裝箱和拆箱引出的享元模式

2021-06-20 10:53:05 字數 863 閱讀 7574

1.自動裝箱和拆箱

從j2se 5.0開始,提供了基本資料型別的自動裝箱和拆箱功能。

基本資料型別對應的封裝類見下:

byte              byte

long             long

short           short

int                 integer

char             character

float              float

double         double

boolean      boolean

比如:  integer   i1 = 1;//自動裝箱

int i = i1;//自動拆箱

在裝箱過程中,會發現如果這麼定義兩個integer      integer  i1 = 11; integer i2 = 11;system.out.println("i1 == i2");發現列印結果為true。說明這兩個integer物件引用了同乙個物件。這就隱含著所謂的享元模式的思想。當賦值的資料位於 -128~+127之間時,就運用享元模式的思想,建立共享物件,達到減少記憶體使用的目的。

享元模式,就是將大量的規模比較小的物件,建立乙個緩衝池儲存起來。當你使用多份相同的物件時,去緩衝池中找。如果沒有,就在緩衝池中儲存乙個新建立的物件。如果有,直接取出使用。這樣可以保證,緩衝池中對於每個不同的物件,都只保留乙份共享物件,節省記憶體空間。

比如 對於interger物件,只能對-128到+127之間的資料,共享物件,可以通過這種思想,加以擴充套件。**如下:

Java 自動裝箱 自動拆箱和享元模式

自動裝箱,例子 把乙個基本資料型別裝成乙個integer物件 integer iobj 3 自動拆箱,例子 把integer物件拆箱成基本資料型別 system.out.println iobj 12 享元模式是一種軟體設計模式。它使用共享物件,用來盡可能減少記憶體使用量以及分享資訊給盡可能多的相似...

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

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

自動裝箱和拆箱

概念 裝箱就是自動將基本型別資料轉為包裝型別 拆箱就是自動將包裝型別轉為基本型別。具體實現 自動裝箱 integer total1 99 編譯後 integer total integer.valueof 99 自動拆箱 int total2 total1 編譯後 int total2 total1...