单例模式(Singleton)
2018-07-25 本文已影响0人
森码
- 构建
懒汉方式:指全局的单例实例在第一次被使用时构建。
饿汉方式:指全局的单例实例在类装载时构建。
public class Singleton {
private static class Holder{
private final Singleton instance = new Singleton();
}
// Private constructor suppresses
private Singleton() {}
// default public constructor
public static Singleton getInstance() {
return Holder.instance;
}
}
- 用静态内部类可以在多线程的情况下,有效的创建对象。
- Double Check也是会出现问题的,JIT优化会有指令重排。
- 多进程会失效