举几个单例模式的例子——茴香豆的茴字有几种写法?
勤加载(饿汉模式)
1 public class EagerSingleton { 2 3 private EagerSingleton() { 4 } 5 6 private static EagerSingleton instance = new EagerSingleton(); 7 8 public static EagerSingleton getInstance() { 9 return instance; 10 } 11 }
勤加载(static块)
1 public class StaticBlockSingleton { 2 3 private StaticBlockSingleton() { 4 } 5 6 private static StaticBlockSingleton instance; 7 8 static { 9 instance = new StaticBlockSingleton(); 10 } 11 12 public static StaticBlockSingleton getInstance() { 13 return instance; 14 } 15 }
懒加载(double-checked locking using volatile)
1 public class DoubleCheckedSingleton { 2 3 private DoubleCheckedSingleton() { 4 } 5 6 private volatile static DoubleCheckedSingleton instance; 7 8 public static DoubleCheckedSingleton getInstance() { 9 10 if (instance == null) { 11 synchronized (DoubleCheckedSingleton.class) { 12 if (instance == null) { 13 instance = new DoubleCheckedSingleton(); 14 } 15 } 16 } 17 return instance; 18 } 19 }
懒加载(内部静态类)
1 public class InnerClassSingleton { 2 3 private InnerClassSingleton() { 4 } 5 6 private static class Holder { 7 private static InnerClassSingleton instance = new InnerClassSingleton(); 8 } 9 10 public static InnerClassSingleton getInstance() { 11 return Holder.instance; 12 } 13 }
懒加载(枚举)
1 public enum EnumSingleton { 2 3 INSTANCE; 4 5 private Singleton instance; 6 7 EnumSingleton() { 8 instance = new Singleton(); 9 } 10 11 public Singleton getInstance() { 12 return instance; 13 } 14 15 }
转载于:https://www.cnblogs.com/niceboat/p/10219958.html
举几个单例模式的例子——茴香豆的茴字有几种写法?相关推荐
- HelloWorld! 程序猿同志,茴香豆的茴字有几种字法?
挖煤的矿工,久处深矿,不见天日. 一新矿工某日第一次出井, 就要重见天日.正欲抬头睁眼之时, 守在井口的人对他大声吼到: "别睁大眼,慢点出来,千万别睁大眼, 小心太阳光,亮瞎你狗日的眼睛& ...
- 单例模式( Single Pattern ): 不仅仅是回字的四种写法
单例模式作为入门编程人员面试必考题之一,也是被玩坏了, 猛然一搜尽然有七种写法,什么懒汉,饿汉五花八门, 这里参考已经比较不错的文章, 忽略五花八门的命名, 把单例模式不同写法按逻辑演进梳理一下, 方 ...
- python:函数中五花八门的参数形式(茴香豆的『回』字有四种写法)
毫不夸张的说,python语言中关于函数参数的使用,是我见过最为灵活的,随便怎么玩都可以,本文以数学乘法为例,演示几种不同的传参形式: 一.默认参数 def multiply1(x, y):retur ...
- 茴香豆的“茴”字有三种写法
我要讲的这个"茴"字是什么呢?其实是excel的用户自定义函数(udf). excel从4.0开始提供了第一种添加udf的方式:XLL.这个本质上是一个DLL.但是只要这个DLL暴 ...
- 写一个饿汉单例模式的例子_你写的单例模式,能防止反序列化和反射吗?
推荐学习 "23种设计模式知识要点"都没读通过,还有脸说摸不清搞不懂? 玩转JAVA筑基之Netty.并发编程与设计模式,打好基础备战春招 前言 说起单例模式,相信大家都不会陌生. ...
- 单例模式:茴香豆的七种写法
之前看一个朋友在学Java,顺口问他,你会设计模式吗? 他说知道一点吧. 然后我就问,那你会几种单例模式的写法吗? 他说,你这个孔乙己. 起篇 首先澄清一下,这篇文章并不是"茴香豆的茴字有X ...
- 使用严格模式的坏处_再见面试官:单例模式有几种写法?
点击上方"JAVA",星标公众号重磅干货,第一时间送达 饱汉模式 饿汉模式 Holder模式 枚举模式 丑陋但好用的语法糖 总结 " "你知道茴香豆的'茴'字有 ...
- 【设计模式】各个击破单例模式的8种写法
单例模式 在一个系统开发过程中,我们在基于节省内存资源.保证数据内容的一致性的考虑上,往往需要对某些类要求只能创建一个实例,即「保证类只有一个实例」的设计模式就是单例模式. 比如我们遇到过的各种Man ...
- 关于“茴香豆的‘茴’有几种写法”:学习过程中,若时间精力有限则优先记住最好用的一种
学习过程中的细节整理和精力节省权衡 我平时学习有整理总结.记笔记的习惯. 我学新东西总是很慢,因为细节处几乎都不会放过,会去发散,去深挖,去比较之前. 刚才上网,查了C语言中二维数组的赋值方式,某个结 ...
- 数组指针之茴香豆有几种写法
C语言函数只能返回一个值,如果想要在函数中修改多个值怎么办呢? 第一个办法是通过结构体,第二个办法就是使用指针了. 可以把变量的地址传给函数,然后通过指针修改该地址上的值.例如: float data ...
最新文章
- 2021-07-23 图像分割
- 使用pdf.js预览实现读取服务器外部文件
- 数据库mysql常用操作_mysql数据库常用操作
- java里函数式表达式_java8入门(lambda表达式、函数式接口相关)
- 云计算 码率适配限速_5G 成熟后,带宽足够且云计算力够大,会不会对 PC 的升级需求放缓?...
- 【数字信号处理】基于matlab GUI频谱分析仪【含Matlab源码 932期】
- 《OpenGL超级宝典》第二章:入门指南
- 联想Y450电源管理无法调节屏幕亮度的解决办法
- codeblock 设置背景颜色
- DOS命令和linux
- Liunx 切换用户This account is currently not available
- C语言实现客房管理系统
- A Death in the Family May Cause Real Heart Break
- ​Aruba 无线控制器本地账号登录密码重置
- SQL Server 2008 远程过程调用失败的问题解决方法
- 中小企业网站十大通病,你的站有没有?
- Switch组件的使用
- 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
- 一文搭建Vuepress博客/文档系统:搭建,导出,SEO,自动编译和部署,域名,HTTPS,备案等
- 如何用python画出一般函数图_python如何画函数图像