為什麼單例
1、在記憶體中只有乙個物件,節省記憶體空間。避免頻繁的建立銷毀物件,可以提高效能。避免對共享資源的多重占用。可以全域性訪問。
2、確保乙個類只有乙個例項,自行例項化並向系統提供這個例項
單例需要注意的問題
1、執行緒安全問題
2、資源使用問題
單件模式用途:下面對單件模式的懶漢式與餓漢式進行簡單介紹:
1、餓漢式:在程式啟動或單件模式類被載入的時候,單件模式例項就已經被建立。
2、懶漢式:當程式第一次訪問單件模式例項時才進行建立。
如何選擇:如果單件模式例項在系統中經常會被用到,餓漢式是乙個不錯的選擇。
反之如果單件模式在系統中會很少用到或者幾乎不會用到,那麼懶漢式是乙個不錯的選擇。
餓漢式demo1
/**
* * @author sprin
* 餓漢式
* 直接建立例項物件,不管你是否需要這個物件都會建立
* * 1.構造器私有化
* 2.自行建立,並用靜態變數儲存
* 3.向外提供這個例項
* 4.強調這是乙個單例,我們可以用final修飾
* */
public class singleton1
}
餓漢式demo2、列舉
/**
* * @author sprin
* 列舉型別,表示該型別的物件是有限的幾個
* 我們可以限定為1個,就是單例了
*/public enum singleton2
測試
public class test2
}}
2 單例模式
一 簡介 什麼是單例模式?單例模式是指 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式實現一 使用類方法實現 class singleton object instance none classmethod definstance cls if cls.instance retur...
單例模式(2)
例項化 執行建構函式 填充屬性 初始化 spring依賴注入bean例項預設是單例的 org.springframework.beans.factory.support.abstractbeanfactoryprotected t dogetbean final string name,nullab...
2 單例模式
單執行緒環境 public class singleton1 private static singleton1 instance null public static singleton1 getinstance 先加鎖後判斷,但是加鎖開銷大,效率不高 public class singleton...