3:它必须自行向整个系统提供这个实例(提供一个静态的公有的方法,返回创建或者获取本身的静态私有对象)
1:在类加载时不创建实例,采用延迟加载的方式,在运行时调用创建实例
2:特点是,线程不安全,但是延迟加载lazy loading,减轻开销
private static Person person=null;
public static synchronized Person getPerson(){
有的时候实例化单例类(ConfigManager)很消耗资源,我们希望能延迟
private static final Person person= new Person();
public static synchronized Person getPerson(){
Java机制规定,内部类 MyObjectHandle只有在getInstance()方法第一次调用的时候才会被加载(实现了延迟加载效果),而且其加载过程是线程安全的(实现线程安全)。内部类加载的时候实例化一次instance。