gpt4 book ai didi

java - 两个单例示例之间的差异

转载 作者:行者123 更新时间:2023-12-01 07:31:05 26 4
gpt4 key购买 nike

A级1

public class A {

private static final A instance = new A();

public static A getInstance() {
return new A();
}

}

A级2

public class A {

private static final A instance = new A();
private A(){}
public static A getInstance() {
return instance;
}

}

我刚刚开始学习单例,我看到了两个使用类 A 1 示例和类 A 2 示例的 java 示例。类 A 1 getInstance() 是单例吗?我还想知道这两个类A getInstance() 方法有什么区别?谢谢

最佳答案

在 A1 中,A 不是 singleton .. getInstance() 每次都会返回 A 的新实例

在A2中,A再次不是单例,因为默认构造函数仍然是public(隐式) 。人们可以轻松地从外部创建更多实例

编辑:

由于您已经编辑了 A2 中的类 A,现在它变成了单例。

这里 A 是急切创建的,并且默认情况下是线程安全的。检查lazy vs eager intialization

关于java - 两个单例示例之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17521561/

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