Lin*_*nda 3 java lazy-initialization
任何人都可以解释在以下单例模式代码中如何进行延迟初始化?
public class Singleton
{
private static Singleton INSTANCE = null;
private Singleton() {}
public static Singleton getInstance()
{
if (INSTANCE == null)
INSTANCE = new Singleton();
return INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
第一次getInstance()调用,INSTANCE为null,并使用初始化INSTANCE = new Singleton();.如果从未使用过,则具有不初始化实例的优点.
如果可以由多个线程访问,则应该将此代码改进为线程安全的.