立即加载是指使用类的时候已经将对象创建完毕
延迟加载是指调用get()方法时实例才被工厂创建
多线程的时候可能会导致建立多个对象,而非单例模式
public class MyObeject{
private static class MyObjectHandler{
private static MyObject myObject = new MyObject();
}
private MyObject(){
}
public static MyObject getInstance(){
return MyObjectHandler.myObject;
}
}
在反序列化时使用readResolve()方法,对原有的MyObject对象进行复用
public class MyObeject{
private static MyObeject instance = null;
private MyObject(){
}
static{
instance = new MyObeject();
}
public static MyObject getInstance(){
return instance;
}
}