public class LazyInitializedSingleton {
private static LazyInitializedSingleton instance;
private LazyInitializedSingleton(){}
public static LazyInitializedSingleton getInstance(){
if(instance == null){
instance = new LazyInitializedSingleton();
}
return instance;
}
}
public class LazyInitializedSingleton {
private static final LazyInitializedSingleton instance = new LazyInitializedSingleton();
private LazyInitializedSingleton(){}
public static LazyInitializedSingleton getInstance(){
return instance;
}
}
хотя он этого делать не должен. А во втором случае это уже инициированная при объявлении переменная, объявленная final со всеми вытекающими из этого последствиями.