设计模式(Java)-004-单例模式-懒汉式

  • 懒汉式线程不安全、调用效率不高、但是可以延迟加载)
    1.线程不安全(可以解决):对getInstance方法进行synchronized
    2.调用效率不高:因为对getInstance方法进行了sysnchronized
    3.可以延迟加载:再第一次获取单例的时候再创建对象

  • 步骤
    1.私有化构造器
    2.提供一个私有的静态的该类对象的引用
    3.一个公有的静态的同步方法,返回单例对象(第一次调用该方法时创建单例对象)

  • 说明
    1.可以延迟加载,更好的利用资源。
    2.存在对方法的synchronized,并发调用效率低。

测试代码

package top.itcourse.gof23;

/**
 * 单例模式懒汉式:
 *      1.构造器私有
 *      2.一个私有的静态的该类对象的引用
 *      3.一个公有的静态的同步方法,获取单例对象(第一次调用该方法时创建对象)
 *
 * 说明:
 *      1.可以延迟加载,更好的利用资源。
 *      2.存在synchronized,并发调用效率低。
 */
public class SingletonLazy {
    // 1.构造器私有
    private SingletonLazy() {
    }

    // 2.一个私有的静态的该类对象的引用
    private static SingletonLazy sl;

    // 3.一个公有的静态方法,获取单例对象(第一次调用该方法时创建对象)
        // synchronized是为了解决线程安全问题
    public static synchronized SingletonLazy getInstance() {
        if(sl == null) {
            sl = new SingletonLazy();
        }
        return sl;
    }
}


其它



源码下载:

关注下方微信公众号,
回复:
DM.code

完整教程PDF版本下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值