// Lazy initialization, not good for currency
public class SingletonDemo {
private static SingletonDemo instance = null;
private SingletonDemo() {}
public static synchronized SingletonDemo getInstance() {
if (instance == null) {
instance = new SingletonDemo();
}
return instance;
}
}
// Lazy initialization, double-checked locking,good for currency
public class SingletonDemo {
private static volatile SingletonDemo instance = null;
private SingletonDemo() {}
public static synchronized SingletonDemo getInstance() {
if (instance == null) {
synchronized(SingletonDemo.class) {
if (instance == null) {
instance = new SingletonDemo();
}
}
}
return instance;
}
}
// Eager initialization
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return INSTANCE;
}
}
// Initialization-on-demand holder
public class SingletonDemo {
private static SingletonDemo = null;
private SingletonDemo() {}
private static class Holder {
private static final SingletonDemo instance = new SingletonDemo();
}
public SingletonDemo getInstance() {
return Holder.instance;
}
}
Singleton
最新推荐文章于 2024-07-16 23:43:04 发布