1、恶汉模式,就是类加载就初始化:
public class Singleton {
private static Singleton singleton=new Singleton();
public static Singleton getInstance(){
return singleton;
}
}
2、懒汉模式,需要双重判定
public class Singleton{
private static Singleton instance;
public static Singleton getInstance(){
if(instance==null){
synchronized (Singleton.class) {
if(instance==null){
instance=new Singleton();
}
}
}
return instance;
}
}3、枚举
public enum Singleton {
instance;
}4、持有类,为了不在初始化时加载
public class Singleton {
private static final class InstanceHolder{
private static Singleton Instance=new Singleton();
}
public static Singleton getInstance(){
return InstanceHolder.Instance;
}
}
4种都保证线程安全,特殊情况(除了多个类加载器,和你非要通过反射等手段生成多个对象)。
本文详细介绍了四种线程安全的单例模式实现方式:恶汉模式、懒汉模式、枚举和持有类。每种实现都有其特点,适用于不同的场景。

被折叠的 条评论
为什么被折叠?



