所謂「懶漢式」與「餓漢式」的區別

2021-06-29 00:50:31 字數 681 閱讀 3870

所謂「懶漢式」與「餓漢式」的區別,是在與建立單例物件的時間的不同。

「懶漢式」是在你真正用到的時候才去建這個單例物件:

比如:有個單例物件

public class singleton

private static singleton singleton = null; //不建立物件

public static singleton getinstance()

return singleton ;

}private synchronized void syncinit()

}}

「餓漢式」是在不管你用的用不上,一開始就建立這個單例物件

比如:有個單例物件

public class singleton

private static singleton singleton = new singleton(); //建立物件

public static singleton getinstance()

}

它有以下幾個要素:

私有的構造方法

指向自己例項的私有靜態引用

以自己例項為返回值的靜態的公有的方法

餓漢式懶漢式

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

單例餓漢式與懶漢式的區別

餓漢式 public class singleton public static singleton getinstance 懶漢式 public class singleton return singleton 比較 餓漢式是執行緒安全的,在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不...

餓漢式與懶漢式單例模式的區別

所謂 懶漢式 與 餓漢式 的區別,是在與建立單例物件的時間的不同。懶漢式 是在你真正用到的時候才去建這個單例物件 比如 有個單例物件 public class singleton private static singleton singleton null 不建立物件 public static ...