懒汉式
普通实现代码 线程安全的
public class Singleton {
public static Singleton singleton = null;
private Singleton() {
}
public static Singleton getSingleton() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
双重检查 加锁 线程安全的 懒汉式式实现
public class Singleton {
public static Singleton singleton ;
private Singleton() {
}
public static Singleton getSingleton() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
饿汉式
实现代码 先创建对象 线程安全的 被 static final修饰的
public class Singleton {
public static final Singleton singleton = new Singleton();
private Singleton(){};
public static Singleton getSingleton(){
return singleton;
}
}