聊聊单例模式

近日有个朋友去面试了,结果被问到了单例模式,朋友的回答好像不是很让人满意,于是我就总结了一下。

其实单例的写法有很多种,下面总结了常用的几种。

1、最简单的饿汉模式

这种方式比较简单,但是缺点也明显,就是浪费资源。如果这个单例的对象非常大,包含了很多属性,那么这种饿汉一上来就实例化对象就是非常浪费了。

2、懒汉模式

这种的虽然克服了饿汉的缺点,但是缺带来了新的问题,在并发情况下就不能保证对象唯一了。

3、懒汉的升级版

直接在getInstance方法前加上synchronized修饰符。

这种的缺陷也是有的,那就是synchronized修饰方法的缺陷了。

4、双重检查

5、静态内部类的方式

6、利用枚举

 

以上几种比较推荐5和6,在性能上算是比较好的了。

其实以上几种都还有缺陷,比如序列化后再反序列化?

 

转载于:https://my.oschina.net/hnqingping1255/blog/775841

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值