假设我有一个空构造函数用于单吨类,下面两种方法中的哪一种最好从公共getInstance方法返回一个实例?
类级别初始化 {
public class ClassName{
private static ClassName instance = new ClassName ();
}
}
使用双重检查锁延迟加载
if (null == instance) {
synchronized (this) {
if(null == instance) {
instance = new className();
}
}
}
我认为类级别初始化不会在这里造成任何伤害。但是想从专家那里确认一下。请帮忙
答案 0 :(得分:1)
您应该拥有私有构造函数和final
实例字段。理想情况下,课程也应该是final
。最简单的方法是使用枚举
public enum Singleton implements MyInterface {
INSTANCE;
}