美文网首页
JAVA单例模式

JAVA单例模式

作者: Small_Cake | 来源:发表于2018-07-26 10:36 被阅读8次
    1.懒汉模式:很少用到或者几乎不会用到,那么懒汉式是一个不错的选择

    懒汉模式在运行的时候获取对象比较慢(因为类加载是并没有创建对象实例),但是加载类的时候比较快(因为此时不创建对象实例)

    • 懒汉模式:懒汉模式在使用时,容易引起不同步问题,所以应该创建同步"锁"
    public class Cake {
        //1.构造私有化,不允许外部直接实例化对象
        private Cake(){}
        //2.声明一个私有静态的对象引用,但不实例化
        private static Cake instance;
        //3.提供获取实例的方法,同步代码块加锁,安全高效
        public static Cake getInstance(){
            if(instance==null)
                synchronized (Cake.class) {
                    if(instance==null) instance = new Cake();
                }
            return instance;
        }
    }
    
    2.饿汉模式:实例在系统中经常会被用到,饿汉式是一个不错的选择

    饿汉模式是在运行的时候获取对象较快(因为在加载类时就创建了对象实例),加载类的时候慢(此时还需要创建对象实例)。

    • 饿汉模式:
    public class Cake{
        //1.构造私有化,不允许外部直接实例化对象
        private Cake(){}
        //2.创建一个私有的静态的实例对象,太饿了,管你要不要,先做出来吃起
        private static Cake instance = new Cake();
        //3.提供获取实例的方法
        public static Cake getInstance(){
            return instance;
        }
    }
    

    相关文章

      网友评论

          本文标题:JAVA单例模式

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