线程安全的单例为什么要这样写(双重检查)
单线程懒汉模式
原始方法是这样的:
// 单线程懒汉模式实现
public static Singleton getInstance() {
if (INSTANCE == null) {
INSTANCE = new Singleton();
}
return INSTANCE;
}
原始方法是这样的:
// 单线程懒汉模式实现
public static Singleton getInstance() {
if (INSTANCE == null) {
INSTANCE = new Singleton();
}
return INSTANCE;
}
静态代码块 → 普通代码块 → 构造方法
父类静态代码块 → 子类静态代码块 → 父类普通代码块 → 父类构造方法 → 子类普通代码块 → 子类构造方法
Java初始化顺序