public class Singleton1 {
private Singleton1() { //构造函数私有
}
private static Singleton1 instance = null;
public static Singleton1 getInstance() {
if (instance == null){
synchronzied(Singleton1.class){
if (instance == null) {
instance = new Singleton1();
}
}
}
}
return instance;
}
饿汉式 利用静态构造函数 空间换时间(在类装载时调用创建实例)
public class Singleton2{
private Singleton2() {
}
private static Singleton2 instance = new Singleton2();
public static Singleton2 getInstance() {
return instance;
}
}
饿汉式 使用静态内部类(实现按需创建实例)
public class Singleton3{
private Singleton3(){
}
private static class SingletonHolder{
private static final Singleton3 instance = new Singleton3();
}
public static Singleton3 getInstance() {
return SingletonHolder.instance;
}
}