单例模式特点:
单例类只能有一个实例
单例类自己内部创建实例
单例类给其他所有对象提供这一实例
懒汉模式(使用时进行对象创建)
采用双重校验锁
public class Singleton{
private volatile static Singleton singleton;
private Singleton(){}
public static Singleton getSingleton(){
if (singleton == null){//效率:加锁是耗时操作
synchronized (Singleton.class){
//避免创建多个对象
if (singleton == null) singleton = new Singleton();
}
}
return singleton;
}
饿汉模式(类初始化时,自行实例化)
public class Singleton{
private Singleton(){}
private static final Singleton singleton = new Singleton();
public static Singleton getInstance(){return singleton;}
}
网友评论