gpt4 book ai didi

java - 单例模式执行排序问题

转载 作者:行者123 更新时间:2023-12-02 09:04:23 24 4
gpt4 key购买 nike

我正在尝试学习单例设计模式。代码如下:

public class Model {

private static final Model INSTANCE = new Model();

public static void main(String[] args) {
Model.getInstance();
}

private Model(){
System.out.println("constructor");
}

public static Model getInstance(){

System.out.println("I hope to be printed first!");
return INSTANCE;
}
}

我希望代码首先打印 Ihope to be returned! ,然后通过类构造函数。但代码输出是相反的:

constructor
I hope to be printed first!

我不明白为什么要先实例化该类?

最佳答案

静态变量在类加载时初始化。它们在创建该类的任何对象之前初始化。由于静态变量是在类的任何静态方法执行之前初始化的,因此您得到的输出符合预期。检查https://beginnersbook.com/2013/05/static-variable/https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html了解更多详细信息和一些示例。

关于java - 单例模式执行排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59936801/

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