單例模式特點(diǎn):
單例類只能有一個(gè)實(shí)例
單例類自己內(nèi)部創(chuàng)建實(shí)例
單例類給其他所有對(duì)象提供這一實(shí)例
懶漢模式(使用時(shí)進(jìn)行對(duì)象創(chuàng)建)
采用雙重校驗(yàn)鎖
public class Singleton{
private volatile static Singleton singleton;
private Singleton(){}
public static Singleton getSingleton(){
if (singleton == null){//效率:加鎖是耗時(shí)操作
synchronized (Singleton.class){
//避免創(chuàng)建多個(gè)對(duì)象
if (singleton == null) singleton = new Singleton();
}
}
return singleton;
}
餓漢模式(類初始化時(shí),自行實(shí)例化)
public class Singleton{
private Singleton(){}
private static final Singleton singleton = new Singleton();
public static Singleton getInstance(){return singleton;}
}