3 餓漢式(靜態常量)

2021-10-01 11:36:51 字數 591 閱讀 6279

步驟:

構造器私有化(防止new)

類的內部建立物件

向外暴露乙個靜態的公共方法

**實現:

class singleton

//類的內部建立乙個物件,保證唯一

private final static singleton instance=new singleton();

//向外暴露乙個靜態的公共方法,返回例項物件

public static singleton getinstance()

}

優缺點:

優點:這種方法比較簡單,就是在類裝載的時候就完成初始化。避免了執行緒的同步問題。

缺點:在類裝載的時候就完成例項化,沒有達到懶載入的效果。如果從始至終沒有使用過這個例項,就會造成記憶體的浪費

這種方法基於類載入機制避免了多執行緒同步問題,不過,instance在類裝載的時候就例項化,在單例模式中大多數都是呼叫getinstance()方法,但是導致類裝載的原因有很多種,不能確定有其他方式(或者其他靜態方法)導致類裝載,這時候,初始化的instance就沒有達到懶載入的效果

結論,這種單例模式可用,可能造成記憶體的浪費

單例模式 餓漢模式(靜態常量)

餓漢模式 靜態常量 優缺點說明 1 優點 寫法比較簡單,就是在類裝載的時候就完成例項化。避免了執行緒同 步問題。2 缺點 在類裝載的時候就完成例項化,沒有達到lazy loading的效果。如果從始 至終從未使用過這個例項,則會造成記憶體的浪費 3 這種方式基於classloder機制避免了多執行緒...

餓漢式懶漢式

這個是先初始化物件。稱為 餓漢式。single類一進記憶體,就已經建立好了物件。class single 私有化構造方法使得該類無法在外部通過new 進行例項化 public static single getinstance 物件是方法被呼叫時,才初始化,也叫做物件的延時載入。成為 懶漢式。sin...

餓漢式和懶漢式

先回顧一下餓漢式單例的寫法 餓漢式 class single public int getage 自定義構造方法 private single 自定義乙個物件 static single s new single public static single getinstance 餓漢式 先初始化物件...