餓漢式:
基於classloder機制避免了多執行緒的同步問題,不過,instance在類裝載時就例項化
懶漢式:public
class singleton
public singleton getinstance()
}
雙檢鎖public
class singleton
public
static synchronized getinstance()
return singleton;
}}
volatile關鍵字不能丟
靜態內部類public
class singleton
public
static singleton getinstance()
synchronized(synobject)
}return instance;
}public
void
executemethod(...)
}
列舉類public
class singleton
private
static
class singletonholder
public
static singleton getinstance()
}
jdk1.5中才加入enum特性。不僅能避免多執行緒同步問題,而且還能防止反序列化重新建立新的物件,
public
enum singleton
}
單例模式的各種寫法
1.餓漢式單例模式 classname hungerysingleton description 餓漢式單例模式 author ymj date 2020 07 10 21 55 version v1.0 public class hungerysingleton public static hun...
單例模式各種實現詳解
餓漢模式 安全,但是無法實現懶載入 public class hungersingleton 懶漢單例 多執行緒會出現多個例項,需要優化 能夠實現懶載入 public class lazymansingleton public static lazymansingleton getinstance ...
單例模式各種實現方式的比較
一 餓漢式單例模式 型別1 餓漢式單例 可用 使用靜態常量,這會保證在類載入時 就初始化乙個a的例項,並且避免了執行緒安全問題。但是有可能該例項永遠不會被用到而導致浪費記憶體。public class a public a getinstance 型別2 餓漢式單例模式 可用 跟a型別,只不過初始化...