美文网首页JavaJava 杂谈
第一章3.1单例模式 - 推荐写法

第一章3.1单例模式 - 推荐写法

作者: yust5273 | 来源:发表于2019-06-09 11:36 被阅读0次

懒汉式(静态内部类)

//懒汉式(静态内部类)
//这种写法,即解决安全问题,又解决了性能问题
//这个戴拿,没有浪费一个字
public class Singleton4 {
    //1.先声明一个静态内部类
    //private 私有的保证别人不能修改
    //static 全局唯一
  //这里其实不会实例化LasyHolder,因为这里是调用的LasyHolder的属性, 没有new LasyHolder( ),也不需要创建LasyHolder对象
//!!静态内部类,只有使用它的时候才加载
    //(静态内部类只有当被外部类调用到的时候才会初始化。 )
    //加载一个类时,其内部类不会同时被加载。一个类被加载,当且仅当其某个静态成员(静态域、构造器、静态方法等)被调用时发生。 
    private static class LasyHolder{
        //final 为了防止内部误操作,防止代理模式,cglib的代理模式
        private static final Singleton4 INSTANCE = new Singleton4();
    }
    //2.将默认构造方法私有化
    private Singleton4(){}
    //3.同样提供静态方法获取实例
    //final 确保别人不能覆盖
    public static final Singleton4 getInstance(){
        return LasyHolder.INSTANCE;
    }

}

相关文章

网友评论

    本文标题:第一章3.1单例模式 - 推荐写法

    本文链接:https://www.haomeiwen.com/subject/fsmgxctx.html