黑馬程式設計師 自動拆裝箱及享元模式的介紹

2021-06-19 07:14:47 字數 1005 閱讀 6768

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

基本資料的自動拆裝箱

integer iobj = 3; //自動裝箱

system.out.println(iobj+12);//自動拆箱

integer i1 = 127;

integer i2 = 127;

integer i3 = 128;

integer i4 = 128;

integer i5 = integer.valueof(127);

integer i6 = integer.valueof(127);

system.out.println(i1 == i2); //true  integer物件中,若數字為byte範圍(-128~127)之內,不建立新物件

system.out.println(i3 == i4); //false

system.out.println(i5 == i6); //true 

享元模式(flyweight):

它使用共享物件,用來盡可能減少記憶體使用量以及分享資訊給盡可能多的相似物件;它適合用於當大量物件只是重複因而導致無法令人接受的使用大量記憶體。通常物件中的部分狀態是可以分享。常見做法是把它們放在外部資料結構,當需要使用時再將它們傳遞給享元。如integer物件的範圍是-128~127之間時,就用了享元模式。因為我們認為這部分小數字經常會用到,沒必要每次用到都開闢記憶體空間,所以當外部資料呼叫這部分資料時,就提供了這種享元模式,以便減少記憶體的使用

自己的理解:

當外部資料需要用到大量相同或者相似的資料時候,就把這部分資料儲存在記憶體中,外部資料只是以不同的形式呼叫這部分空間中的資料,並不重新開闢空間,這就是享元模式

----------------------

asp.net+android+ios開發、

.net培訓、期待與您交流! ----------------------詳細請檢視:

基本資料的自動拆裝箱及享元設計模式

基本資料的自動拆裝箱及享元設計模式 自動拆裝箱 自動拆箱 把引用型別轉變為值型別 自動裝箱 把值型別轉變為引用型別 享元模式 很多小的物件,他們有很多相同的屬性,那麼我們把它們作為乙個物件,他們相同的屬性我們叫內部狀態 若他們很多物件的屬性不同,那我們把它們的屬性作為方法的引數,我們叫這些屬性為外部...

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

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

黑馬程式設計師 自動屬性

一般屬性與自動屬性區別 先看示例 一般屬性 自動屬性 class a set class a c 中用get和set對類的屬性進行訪問和設定,保障類中資料的安全。自動屬性是不對字段進行邏輯驗證的操作.由於自動屬性可以省略後備字段,用自動屬性,一般屬性簡明。這樣子寫,這兩種方法沒區別.那麼什麼情況下用...