java懶載入建立例項程式碼詳解
阿新 • • 發佈:2019-01-23
36套java進階高階架構師視訊+38套大資料視訊 保證全是硬貨需要的
+微信:
du13797566440
/**
*
* 描述:懶載入
* 作者: dlj
* 時間: 2017年12月22日 下午4:21:25
*/
public class Single {
/***
* 方法1 靜態內部類
*懶載入模式的優化版,在類被裝載時,靜態內部類並沒有被例項化,
* 只有getInstance()時才 會裝載 SingletonHolder 類,靜態內部類方式也能很好地,實現執行緒安全、高效率和延遲載入特性。
*/
private static class Holder {
private static final Single INST3 = new Single();
}
public static Single getInstance() {
return Holder.INST3;
}
/***
*方法2 懶載入模式普通版(dbck) 第一個if控制執行緒是否加鎖,第二個if判斷是否建立例項 作者: dlj 時間: 2017年12月22日 下午4:02:31
*/
private static Single s = null;
public static Single getInstends() {
if (s == null) {
synchronized (Single.class) {
if (s == null) {
s = new Single();
}
}
}
return s;
}
}