一、饿汉式单例模式
关键代码:
class Singleton(){
private Singleton(){}
private static Singleton instance = new Singleton;
public static getSingleton(){
return instance;
}
}
二、懒汉式单例模式
关键代码:
class Singleton{
private static Singleton instance=null;
private Singleton(){}
synchronized public static getSingleton(){
if(instance==null){
return new Singleton();}
else{
return instance;
}
}
}
注:双重检查锁定也不是一种编程安全的方式。
volatile关键字:并不是所有的JVM都对volatile有很好的支持。
请查看这篇文章:
双重检查锁定及单例模式
全面理解这一失效的编程习语