单例设计模式,饿汉式和懒汉式的实现

1.单例模式

特点:只存在一个对象实例(模板对象)。

一、饿汉式

1.类的构造器私有化(防止别人new创建)
2.只有类的内部创建对象
3.向外部提供一个公共方法getInstance(),返回对象实例。
优点:立即加载实例化,没有线程同步的问题。
缺点:没有懒加载的效果,浪费内存。

在这里插入图片描述

二、懒汉式

1.线程不安全
提供一个静态公共方法getInstance(),调用这个方法才创建对象。
缺点:多个线程调用时,会产生多个实例。
在这里插入图片描述
2.线程安全
方法加个同步锁,虽然效率低,但是安全,一般不建议用。
在这里插入图片描述

3.双重检查
第一个线程进来,判空,创建完对象,另外一个线程进来,发现已经创建好了。
在这里插入图片描述

4.静态内部类
类加载时,内部类不会被加载。
类的方法去调用静态内部类创建对象。
只有一个线程去实例化。

在这里插入图片描述
5.枚举

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值