- 饿汉式
-
public class Singleton { private final static Singleton instance = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return instance; } }
懒汉式
-
public class Singleton { private final static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance==null){ instance = new Singleton(); } return instance; } }
多线程下的单例
public class Singleton {
private final static Singleton instance;
private final static Object syn = new Object();
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
lock(syn){
if(instance==null){
instance = new Singleton();
}
}
}
return instance;
}
}