java - Java中静态字段什么时候初始化?

标签 java singleton

在 Singleton 的基本实现中,new Singleton1() 调用实际发生在什么时候(用 * 标记?

public final class Singleton1 {

    private Singleton1() { }

    private static Singleton1 instance = new Singleton1(); // (*) When does this happen?
                                                           //     Before calling getInstance() from the client?

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

最佳答案

当 JVM 首次加载类时,会填充静态字段(请参阅 JLS 12.4 )。所以是的,instance 将在调用 getInstance() 之前填充。

关于java - Java中静态字段什么时候初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59831360/

相关文章:

Python,使用单例模式或仅使用全局变量

java - 将 ConcurrentHashMap 传递给另一个类的最佳方法?

Java单例内部类

java - 从 javascript 转义 Unicode 到 Java Unicode 的转换

属性更新时 JavaFX TableView 的排序一致性

MVVM在所有 View 之间共享对象

Swift:完成处理程序和单例

java - Red5 屏幕共享在 Ubuntu 中不起作用

Java - 使用 JUnit 测试 public static void main 方法

java - 如何确定 EJB 调用是来自远程客户端还是本地客户端