饥汉式单例模式:
之所以称之为饿汉式,是因为肚子很饿了,想马上吃到东西,不想等待生产时间。类创建的时候就会创建实例。
public class singleton{
private final static singleton instance = new Singleton();
private singleton(){};
public static singleton getInstance(){
return instance;
}
}
懒汉式单例模式:
相比饿汉式,懒汉式显得没那么“饿”,在真正需要的时候再去创建实例。在getInstance方法中,先判断实例是否为空再决定是否去创建实例,看起来似乎很完美,但是存在线程安全问题。调用getInstance方法才会产生实例。
public class singleton implements serializable{
private Singleton(){};
private final static instance = null;
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}