gpt4 book ai didi

java - 这个实现对于单例来说正确吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:57 25 4
gpt4 key购买 nike

我想实现一个单例类,你能告诉我:我的实现是正确的吗?如果没有,请告诉我原因。谢谢

public class Singleton {
private String str ;
private final static Singleton ss = new Singleton();
private Singleton(){

}

public void setStr(String str) {
this.str = str;
}
public String getStr() {
return str;
}

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

最佳答案

您的实现很好并且是线程安全的。
在静态字段中执行的单例实例化是:

private final static Singleton ss = new Singleton();

防止任何竞争条件,因为它在对象可访问之前执行,并且其余代码还保证只创建该类的一个实例,特别是因为该语句是调用构造函数的单次并且构造函数也是私有(private)的。

请注意,这是一个急切的实例化。您还可以使用静态持有者类的惰性方式,但这确实是噪音,因为开销几乎为零。

关于java - 这个实现对于单例来说正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56190939/

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