恶汉式和懒汉式:
区别:创建对象的时间不同
恶汉式在一开始就建立了对象,不管是否能用到此对象
//恶汉式
public class Singleton{
private static final Singleton SINGLETON = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return SINGLETON;
}
}
懒汉式在真正用到此对象时才创建
//懒汉式
public class Singleton{
private Singleton(){}
private static Singleton singleton = null;
public static Singleton getInstance(){
if(singleton == null){
synchronized (Singleton.class) {
if(singleton == null){
singleton = new Singleton();
}
}
}
return singleton;
}
}