面試2 單例模式

2021-09-20 10:18:29 字數 939 閱讀 7488

為什麼單例

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...