Can anyone explain how does lazy initialization happen in the following singleton pattern code?
public class Singleton
{
private static Singleton INSTANCE = null;
private Singleton() {}
public static Singleton getInstance()
{
if (INSTANCE == null)
INSTANCE = new Singleton();
return INSTANCE;
}
}