Java 單例模式

2021-06-13 08:25:20 字數 978 閱讀 9205

單例模式特點:

1、單例類只能有乙個例項。

2、單例類必須自己自己建立自己的唯一例項。

3、單例類必須給所有其他物件提供這一例項。

一、餓漢式單例(基於classloder機制避免了多執行緒的同步問題,使用較多)

public class singleton 

//這裡提供了乙個供外部訪問本class的靜態方法,可以直接訪問  

public static singleton getinstance()

}

二、懶漢式單例(只有呼叫getinstance()方法時才例項化,所以懶)(總是不完美)

將上面的getinstance()方法前加上synchoronized關鍵字即可

變成public  static  synchronized  singleton  getinstance()則執行緒安全,但是效率很低,99%情況下不需要同步。

三、靜態內部類(利用classloder的機制來保證初始化instance時只有乙個執行緒,只有呼叫getinstance方法時,才會裝載singletonholder類,例項化instance,該方法挺好)

public class singleton

private singleton()

public static final singleton getinstance()

}

四、雙重校驗鎖

public class singleton

public static singleton getsingleton()

}} return singleton;

}}

java單例模式

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

Java單例模式

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

java單例模式

單例模式 乙個類有且僅有乙個例項,並且自行例項化向整個系統提供 單例模式的要點 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。1 私有化靜態屬性 private static a model 2 私有化構造方法 private a 3 提供公用的靜態的方...