勤加载(饿汉模式)

 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

举几个单例模式的例子——茴香豆的茴字有几种写法?相关推荐

  1. HelloWorld! 程序猿同志,茴香豆的茴字有几种字法?

    挖煤的矿工,久处深矿,不见天日. 一新矿工某日第一次出井, 就要重见天日.正欲抬头睁眼之时, 守在井口的人对他大声吼到: "别睁大眼,慢点出来,千万别睁大眼, 小心太阳光,亮瞎你狗日的眼睛& ...

  2. 单例模式( Single Pattern ): 不仅仅是回字的四种写法

    单例模式作为入门编程人员面试必考题之一,也是被玩坏了, 猛然一搜尽然有七种写法,什么懒汉,饿汉五花八门, 这里参考已经比较不错的文章, 忽略五花八门的命名, 把单例模式不同写法按逻辑演进梳理一下, 方 ...

  3. python:函数中五花八门的参数形式(茴香豆的『回』字有四种写法)

    毫不夸张的说,python语言中关于函数参数的使用,是我见过最为灵活的,随便怎么玩都可以,本文以数学乘法为例,演示几种不同的传参形式: 一.默认参数 def multiply1(x, y):retur ...

  4. 茴香豆的“茴”字有三种写法

    我要讲的这个"茴"字是什么呢?其实是excel的用户自定义函数(udf). excel从4.0开始提供了第一种添加udf的方式:XLL.这个本质上是一个DLL.但是只要这个DLL暴 ...

  5. 写一个饿汉单例模式的例子_你写的单例模式,能防止反序列化和反射吗?

    推荐学习 "23种设计模式知识要点"都没读通过,还有脸说摸不清搞不懂? 玩转JAVA筑基之Netty.并发编程与设计模式,打好基础备战春招 前言 说起单例模式,相信大家都不会陌生. ...

  6. 单例模式:茴香豆的七种写法

    之前看一个朋友在学Java,顺口问他,你会设计模式吗? 他说知道一点吧. 然后我就问,那你会几种单例模式的写法吗? 他说,你这个孔乙己. 起篇 首先澄清一下,这篇文章并不是"茴香豆的茴字有X ...

  7. 使用严格模式的坏处_再见面试官:单例模式有几种写法?

    点击上方"JAVA",星标公众号重磅干货,第一时间送达 饱汉模式 饿汉模式 Holder模式 枚举模式 丑陋但好用的语法糖 总结 " "你知道茴香豆的'茴'字有 ...

  8. 【设计模式】各个击破单例模式的8种写法

    单例模式 在一个系统开发过程中,我们在基于节省内存资源.保证数据内容的一致性的考虑上,往往需要对某些类要求只能创建一个实例,即「保证类只有一个实例」的设计模式就是单例模式. 比如我们遇到过的各种Man ...

  9. 关于“茴香豆的‘茴’有几种写法”:学习过程中,若时间精力有限则优先记住最好用的一种

    学习过程中的细节整理和精力节省权衡 我平时学习有整理总结.记笔记的习惯. 我学新东西总是很慢,因为细节处几乎都不会放过,会去发散,去深挖,去比较之前. 刚才上网,查了C语言中二维数组的赋值方式,某个结 ...

  10. 数组指针之茴香豆有几种写法

    C语言函数只能返回一个值,如果想要在函数中修改多个值怎么办呢? 第一个办法是通过结构体,第二个办法就是使用指针了. 可以把变量的地址传给函数,然后通过指针修改该地址上的值.例如: float data ...

最新文章

  1. 2021-07-23 图像分割
  2. 使用pdf.js预览实现读取服务器外部文件
  3. 数据库mysql常用操作_mysql数据库常用操作
  4. java里函数式表达式_java8入门(lambda表达式、函数式接口相关)
  5. 云计算 码率适配限速_5G 成熟后,带宽足够且云计算力够大,会不会对 PC 的升级需求放缓?...
  6. 【数字信号处理】基于matlab GUI频谱分析仪【含Matlab源码 932期】
  7. 《OpenGL超级宝典》第二章:入门指南
  8. 联想Y450电源管理无法调节屏幕亮度的解决办法
  9. codeblock 设置背景颜色
  10. DOS命令和linux
  11. Liunx 切换用户This account is currently not available
  12. C语言实现客房管理系统
  13. A Death in the Family May Cause Real Heart Break
  14. ​Aruba 无线控制器本地账号登录密码重置
  15. SQL Server 2008 远程过程调用失败的问题解决方法
  16. 中小企业网站十大通病,你的站有没有?
  17. Switch组件的使用
  18. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
  19. 一文搭建Vuepress博客/文档系统:搭建,导出,SEO,自动编译和部署,域名,HTTPS,备案等
  20. 如何用python画出一般函数图_python如何画函数图像

热门文章

  1. python 等值面 插值_对离散点进行克里金插值并输出矢量等值面
  2. 单价数量和总价的公式_总价数量单价的数量关系式
  3. 储户诉银行虚假宣传 微众银行智能存款产品屡遭用户投诉
  4. 多节点服务器定时任务重复处理的问题
  5. 实验1构建多连杆机器人模型
  6. 纯JS实现倒序九九乘法表 for循环
  7. 【Spring系列】 Ioc 实现原理,Spring获取bean的方式,创建对象的方式和懒加载
  8. 如果宇宙是答案,那么问题是什么?
  9. 智能制造-其真正涵义
  10. android设置布局背景为空,android 设置背景为空(透明)