"按需初始化持有人成语" - 懒加载?

时间:2017-01-12 10:59:19

标签: java singleton

wiki页面解释了"按需初始化持有人习惯用语"使用延迟加载。

按需初始化持有人习语

public class Something {
    private Something() {}

    private static class LazyHolder {
        private static final Something INSTANCE = new Something();
    }

    public static Something getInstance() {
        return LazyHolder.INSTANCE;
    }
}

的Singleton

public class Something {
        private Something() {}

        private static final Something INSTANCE = new Something();

        public static Something getInstance() {
            return INSTANCE;
        }
    }

我的理解是,第一次调用类Something时会加载并初始化它。

但是,LazyHolder将在加载Something的同时加载。

然后,这两个在初始化方面有何不同?为什么与通常的 Singleton 方法相比,按需初始化持有者习惯用法使用延迟初始化?

0 个答案:

没有答案