java 單例模式(更改版)

2021-08-08 14:10:32 字數 1297 閱讀 1683

首先看下單例模式的幾種實現方式

個人理解:由於在高併發裡面會建立多個例項,需要對類的初始化進行改造。

下面介紹2種模式:

package test;

//餓漢式單例類.在類初始化時,已經自行例項化

public class singleton

private static final singleton single = new singleton();

//靜態工廠方法

public static singleton getinstance()

}

public static void main(string args)
呼叫的時候再載入

package test;

//懶漢式單例類.是在呼叫時才  

public class singleton

private static singleton single ;

//靜態工廠方法 

public static singleton getinstance() else

return single;

}}

上面2種方法都是執行緒不安全的,所以要用synchronized來程式設計

package test;

//懶漢式單例類.是在呼叫時才

public class singleton

private static singleton single ;

//靜態工廠方法

public synchronized static singleton getinstance() else

return single;

}}

但是!!!你鎖住的東西太多了,一旦高併發會卡很久的,so優化

package test;

//懶漢式單例類.是在呼叫時才

public class singleton

private static singleton single ;

//靜態工廠方法

public static singleton getinstance() else

return single;

}} }

}

而且可以看到裡面雙重判斷是為了更加準確就是單一模式

但是!!!還是有缺陷:就是當其他執行緒已經建立之後,跳到另乙個執行緒時,會顯示已經建立例項,就沒有建立了。

java單例模式

第一種方法 public class singleton private static singleton singleton new singleton public static singleton getinstance 第二種方法 public class singleton private...

Java 單例模式

單例模式特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。一 餓漢式單例 基於classloder機制避免了多執行緒的同步問題,使用較多 public class singleton 這裡提供了乙個供外部訪問本class的靜態方法,可...

Java單例模式

單例模式的意圖是為了確保乙個類有且僅有乙個例項,並為它提供乙個全域性訪問點。單例模式通過隱藏建構函式,提供物件建立的唯一入口點,從而將類的職責集中在類的單個例項中。design patterns一書中把單例模式歸類為 建立型 模式,意圖是在表明單例物件承擔了其他物件所要依賴的職責。單例模式的優點 在...