靜態內部類實現的單例模式是如何保證執行緒安全的

2021-08-28 05:59:16 字數 487 閱讀 7773

靜態內部類實現的單例模式如下:

public class singleton

public static singleton getinstance()

private static class singletonholder

//當第一次載入singleton類時並不會初始化sinstance,只有在第一次呼叫singleton的getinstance方法時才會導致sinstance被初始化。

//因此第一次呼叫getinstance方法會導致虛擬機器載入singletonholder類,

//這種方式不僅能夠確保執行緒安全,也能保證單例物件的唯一性,同時延遲了單例的例項化。

//這種方式不僅能夠確保執行緒安全

//原因:虛擬機會保證乙個類的構造器()方法在多執行緒環境中被正確地載入,同步,如果多個執行緒同時去初始化乙個類,那麼只有乙個執行緒去執行這個類的

//構造器()方法,其他執行緒都需要阻塞等待,直到活動執行緒執行()方法完畢。

靜態內部類實現單例模式

new b.c b b new b b.c c b.new c public class singleton public synchronized static singleton getinstance return instance public static singleton getins...

單例模式 靜態內部類

靜態內部類是乙個很好的實現單例的方式 看 package cn.liz.syn public class staticinner 私有的靜態內部類 private static class inner 公共的 獲取例項的方法 public static staticinner getinstance...

單例模式 靜態內部類

1 2 單例模式 靜態內部類3 4public class singletontest0711 1213 14 靜態內部類實現方式 15 16class singleton 2324 25 2.寫乙個靜態內部類,直接返回singleton 26 27private static class sing...