我想实现一个单例类,你能告诉我:我的实现是正确的吗?如果没有,请告诉我原因。谢谢
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)的。
请注意,这是一个急切的实例化。您还可以使用静态持有者类的惰性方式,但这确实是噪音,因为开销几乎为零。
我是一名优秀的程序员,十分优秀!