懒汉式
public class Singleton {
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if (instance==null){
instance = new Singleton();
}
return instance;
}
}
饿汉式
public class Singleton1 {
private static Singleton1 instance = new Singleton1();
private Singleton1(){}
public static Singleton1 getInstance(){
return instance;
}
}
双重锁
public class Singleton2 {
private volatile static Singleton2 instance;
private Singleton2(){}
public static Singleton2 getInstance(){
if (instance==null){
synchronized (Singleton2.class){
if (instance==null){
instance = new Singleton2();
}
}
}
return instance;
}
}