單例模式之懶漢式和餓漢式

2021-09-28 21:27:12 字數 1101 閱讀 6735

什麼是單例模式?單例

模式就是在

jvm中乙個

物件只能

有乙個例項。

單例模式有七種寫法,常見的單例模式有兩種:懶漢式、餓漢式

什麼是懶漢式?

就是需要的才會去例項化,執行緒不安全。

什麼是餓漢式?

就是當class檔案被載入的時候就已經初始化,天生執行緒安全。

懶漢式寫法

/**

* 保證這個類在jvm中只有乙個例項化物件

*/class singleton

/** 懶漢式就是當你需要的時候才會被例項化,之後用的都是同乙個例項

* 但是懶漢式執行緒不安全,當兩個執行緒同時執行getsingleton方法時,可能會new兩個

* singleton,違背了單例的原則

* 會發生執行緒不安全問題,所以需要加上同步

*/static public singleton getsingleton()

} return singleton; }}

public class singletontest

}

餓漢寫法

/**

* 餓漢式:就是當class檔案被載入的時候,就會被初始化,天生執行緒安全

*/class singleton1

static public singleton1 getsingleton()

}public class singletontest2

}

總結:

懶漢式就是當你需要使用的時候才會被初始化,之後都是用乙個例項,但是執行緒不安全,需要使用synchronized進行同步。

餓漢式就是當class檔案被載入的時候,就會被初始化,天生執行緒安全。

單例模式之餓漢式和懶漢式

單例模式是什麼 單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的類乙個類只有乙個例項。即乙個類只有乙個物件例項 餓漢式的 實現 public class singleton 返回物件例項 public static singl...

單例模式之餓漢式和懶漢式

餓漢式 在定義變數的同時完成賦值 class singleinstance 第三步 建立乙個靜態的公共的方法,將單例類物件提供出去 public static singleinstance getinstance 功能區 一般建立的是非靜態的成員實現功能 建立成員變數 建立成員方法 懶漢式 clas...

單例模式之懶漢式和餓漢式

下面對單件模式的懶漢式與餓漢式進行簡單介紹 1 餓漢式 在程式啟動或單件模式類被載入的時候,單件模式例項就已經被建立。2 懶漢式 當程式第一次訪問單件模式例項時才進行建立。如何選擇 如果單件模式例項在系統中經常會被用到,餓漢式是乙個不錯的選擇。反之如果單件模式在系統中會很少用到或者幾乎不會用到,那麼...