ウィキペディアでシングルトン パターンのこのコードに出くわしました。nullを2回チェックする目的/ロジックを誰かが説明できますか?
public class SingletonDemo {
private static volatile SingletonDemo instance = null;
private SingletonDemo() { }
public static SingletonDemo getInstance() {
if (instance == null) {
synchronized (SingletonDemo .class){
if (instance == null) {
instance = new SingletonDemo ();
}
}
}
return instance;
}
}