先上代碼
public class Singleton {
private static Singleton instance = null;
public static Singleton getInstance() {
if(instance == null) {
instance = SingletonLazy.lazy;
}
return instance;
}
private static class SingletonLazy {
public static Singleton lazy = new Singleton();
}
}
classloader首先會加載Singleton.class文件,運行到if(instance==null)這句的時候,如果爲空,回去加載SingletoneLazy.class。如此便實現了lazy初始化。