懒汉和饿汉单例

1,饿汉式:在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。
2,懒汉式:当程序第一次访问单件模式实例时才进行创建。
如何选择:如果单件模式实例在系统中经常会被用到,饿汉式是一个不错的选择。
反之如果单件模式在系统中会很少用到或者几乎不会用到,那么懒汉式是一个不错的选择。

饿汉式  类加载的时候就会初始化  线程安全

public class Single1 {
        private static final Single1 single = new Single1();
        private Single1(){}
        public static  Single1 getSingle1(){
            return single;
        }
}

懒汉式    线程并发的时候,线程不安全

public class Single2 {
            private static Single2 single;
            private Single2(){}
            public static  Single2 getSingle2(){
                if(single==null){
                    single = new Single2();
                }
                    return single;
            }
}

public class Single2 {
    //懒汉式双检锁
    private static Single2 single2;
    private Single2(){}
    public static synchronized Single2 getsinSingle2(){
        if(single2==null){
            synchronized(Single2.class){
                if(single2==null){
                    single2 = new Single2();
                }
            }
        }
        return single2;
    } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值