Java 什么是非惰性初始化?

Java 什么是非惰性初始化?,java,classloader,lazy-initialization,Java,Classloader,Lazy Initialization,我相信每个人都知道以下Singleton模式的实现: public class Singleton { private static volatile Singleton instance; private Singleton(){} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.instance){ if (i

我相信每个人都知道以下Singleton模式的实现:

public class Singleton {

private static volatile Singleton instance;

private Singleton(){}

public static Singleton getInstance() {

    if (instance == null) {
        synchronized (Singleton.instance){
            if (instance == null) {
                instance = new Singleton();
            }
        }
    }

    return instance;
}}
我知道这是一个与延迟初始化相对应的实现。 但是Java类加载器以惰性模式加载类

任何对象如何不被延迟初始化? 无论对象实现如何,只有在使用单词“new”或调用工厂方法时才会创建实例


什么是非惰性类加载?

非惰性加载将在加载类时立即实例化实例,而不是等到第一次调用getInstance


如果加载了类,但没有人调用getInstance,那么创建一个从未使用过的对象会浪费时间和内存。

非延迟加载会在加载类时立即实例化实例,而不是等到第一次调用getInstance


如果类已加载,但没有人调用getInstance,那么创建一个从未使用过的对象会浪费时间和内存。

我不知道以下Singleton模式的实现。您发布的代码已损坏,将在99.999%的情况下在line synchronized Singleton.instance上抛出NullPointerException。您是否询问类加载或初始化?你的题目是一个,你的最后一个问题是另一个。它们不是一回事。我不知道下面的单例模式的实现。您发布的代码已损坏,将在99.999%的情况下在line synchronized Singleton.instance上抛出NullPointerException。您是否询问类加载或初始化?你的题目是一个,你的最后一个问题是另一个。他们不是一回事。
public class Singleton {
    private static volatile Singleton instance = new Singleton();

    private Singleton() { }

    public static Singleton getInstance() {
        return instance;
    }
}