单例模式之饿汉式(普通)
public class Singleton {
private final static Singleton bean = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return bean;
}
}
单例模式之饿汉式(高效率)
public class Singleton {
private Singleton() {
}
static class SingletonInner{
private static Singleton bean=new Singleton();
public Singleton getUserDAOInstance(){
return bean;
}
}
}
单例模式之懒汉式(普通)
public class Singleton {
private static Singleton bean = null;
private Singleton() {
}
public static Singleton getInstance() {
if (bean == null) {
bean = new Singleton();
}
return bean;
}
}
单例模式之懒汉式(线程安全)
public class Singleton {
private static Singleton bean = null;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (bean == null) {
bean = new Singleton();
}
return bean;
}
}
单例模式之懒汉式(线程安全+双重检查)
public class Singleton {
private static volatile Singleton bean = null;
private Singleton() {
}
public static synchronized Singleton getInstance() {
synchronized (Singleton.class) {
if (bean == null) {
bean = new Singleton();
}
}
return bean;
}
}