4种单例模式
第一种
懒汉模式 =>通过同步代码块的方式保证线程安全
public class Singleton {
private static Singleton singleton;
private Singleton() {}
public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
singleton = new Singleton();
}
}
return singleton;
}
}
第二种
饿汉模式
public class Singleton{
private final static Singleton singleton = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return singleton;
}
}
第三种
枚举
public enum EnumSingle {
INSTANCE;
public EnumSingle getInstance(){
return INSTANCE;
}
}
第四种
静态内部类
public class Gonna {
private Gonna (){
}
private static Gonna getInstance(){
return InnerClasses.gonna ;
}
public static class InnerClasses{
private static final Gonna gonna=new Gonna ();
}
}