美文网首页
单例模式(饿汉式之静态创建)

单例模式(饿汉式之静态创建)

作者: bin丶 | 来源:发表于2020-11-28 19:06 被阅读0次


    以下方式均不推荐开发使用,仅供学习
    package singleton;
    
    /**
     * 饿汉式(静态常量)
     */
    public class Singleton_1 {
        // 1. 私有化构造器
        private Singleton_1() {}
    
        // 2. 本类内部创建静态常量型实例
        private final static Singleton_1 instance = new Singleton_1();
    
        // 3. 对外提供公有的获取实例方法
        public static Singleton_1 getInstance() {
            return instance;
        }
    }
    
    package singleton;
    
    /**
     * 饿汉式(静态代码块)
     */
    public class Singleton_2 {
    
        // 1. 私有化构造器
        private Singleton_2() {}
    
        // 2. 静态变量
        private static Singleton_2 instance;
    
        static {
            instance = new Singleton_2();
        }
    
        // 3. 对外提供公有的获取实例方法
        public static Singleton_2 getInstance() {
            return instance;
        }
    }
    

    优点

    • 实现简单,避免了线程同步问题

    缺点

    • 在类装载时就完成了实例化,达不到懒加载(lazy loding)的效果,如果这个类从始至终都没有使用过,将会造成内存浪费

    两种创建方法优缺点一致

    相关文章

      网友评论

          本文标题:单例模式(饿汉式之静态创建)

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