单例模式介绍

1、创建对象的模式

(1) 单例模式,创建一个全局对象,每次调用使用同一个实例

(2) 原型模式,每次调用都新建一个对象

如果使用springmvc还有两种方式

(3) session,一个session会话,使用一个对象实例

(4) request, 一个request请求,使用一个对象实例

2、Spring默认对象创建是单例模式,那单例模式有什么优势

单例模式在全局服务只需要创建一个对象,减少重复创建,提高性能。

具体执行是这样,每个新创建的对象都放在jvm的新生代里,而新生代的容量是一定的,如果对象不断创建,会频繁触发垃圾回收,有时还会导致fullGC,严重影响性能。

3、单例陷阱

单例陷阱是在多线程的问题

一个线程创建一个独立栈帧,栈帧存储方法的局部变量,而全局变量存储在堆中。这时全局变量就是不安全的,获取到的值可能是另一个线程的临时值。

4、单例陷阱解决方法

(1) 减少使用全局便令

(2) 不变变量加入final

(3) 使用static全局变量

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值