饿汉式
public class Singleton {
private Singleton(){}
private static final Singleton INSTANCE = new Singleton();;
public static Singleton getInstance() {
return INSTANCE;
}
}
懒汉式之一 : double check lock
public class Singleton {
private Singleton(){}
private static Singleton instance;
public static Singleton getInstance() {
if(instance==null){ //step1
synchronized (Singleton.class) {
if(instance==null){ //step2
instance = new Singleton();
}
}
}
return instance;
}
}
懒汉式之二 : 内部类实现,其实也有饿汉式的影子
public class Singleton {
private Singleton() {}
private static class InnerSingleton{
private static final Singleton INSTANCE = new Singleton();
}
public static final Singleton getInstance() {
return InnerSingleton.INSTANCE;
}
}
本文深入探讨了单例模式的两种主要实现方式:饿汉式和懒汉式。通过具体的Java代码示例,详细解释了每种方式的特点及应用场景。特别介绍了懒汉式的双重检查锁定(double check lock)和内部类实现方法。

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



