public class Something {
private Something() {}
private static class LazyHolder {
private static final Something INSTANCE = new Something();
}
public static Something getInstance() {
return LazyHolder.INSTANCE;
}
}
类加载器加载Something类时,LazyHolder是静态类,因此,类加载器不会加载该类。当第一次调用getInstance函数时,触发加载LazyHolder类,创建新的Something对象。这方式比“双重检查模式”更加高效。
原文
双重检查模式