gpt4 book ai didi

java - Singleton实例化和 "static"代码在什么时候发生

转载 作者:行者123 更新时间:2023-11-30 08:12:18 25 4
gpt4 key购买 nike

我有两个关于下面的 Singleton 类的问题:

1) 在代码中的哪个点通过声明中的“new”调用实例?这是第一次调用 getInstance() 吗?

2)“static {..}”HashMap 初始化在代码中的哪个点发生?

public class Factory {

// Singleton Member Defined - when does this New instantiation occur
private static final Factory instance = new Factory();

// Additional Map Variable
private static HashMap<String, String> myMap = new HashMap<String, String>();

static {
myMap.put("key1", "value1");
myMap.put("key2", "value2");
}

// Private Constructor for Singleton
private Factory() {
}

// Get Singleton Instance
public Factory getInstance() {
return instance;
}

}

最佳答案

当 JVM 首次加载类时(代码中首次调用类),静态变量和静态 block 将被调用一次。

声明的顺序定义了加载的顺序。

关于java - Singleton实例化和 "static"代码在什么时候发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com