1. 思想

英文名叫Singleton,可以说是GoF的23种设计模式里最简单的一个。

单例模式:表示一个类只会生成一个唯一的对象。

分为两种方式:懒汉式和饿汉式。

2. 懒汉式实现方式

懒汉式是在你真正用到的时候才去建这个单例对象,从实现方式上来讲,就是延迟加载。这种方式是线程不安全的!

public class Singleton1 {private static Singleton1 singleton1;public static Singleton1 newInstance() {if(null == singleton1) {return new Singleton1();}return singleton1;}
}

3. 饿汉式实现方式

饿汉式是在虚拟机启动的时候就会创建。

public class Singleton2 {private static Singleton2 singleton2 = new Singleton2();private static Singleton2 newInstance() {return singleton2;}
}

JAVA设计模式是个什么玩意儿_03_单例模式相关推荐

  1. Java设计模式——为什么要用枚举实现单例模式(避免反射、序列化问题)

    1.序言   相信如果能看到我这篇博客的小伙伴,肯定都看过Joshua Bloch大神说过的这句话:"单元素的枚举类型已经成为实现Singleton的最佳方法".其实,第一次读到这 ...

  2. Java设计模式(方法工厂类、单例模式、代理模式、策略模式、适配器、观察者、装饰类等)

    目录 一.简单工厂模式(Factory Method) 二.工厂方法模式 三.抽象工厂模式(Abstract Factory) 3.1 三个工厂模式区别: 四.单例模式(Singleton) 1.饿汉 ...

  3. 【Java设计模式 - 创建型模式1】单例模式

    java设计模式之单例模式 简介 场景 实现 单例模式的几种实现方式 懒汉式,线程不安全 懒汉式,线程安全 饿汉式 双检锁/双重校验锁(DCL,即 double-checked locking) 登记 ...

  4. JAVA设计模式是个什么玩意儿

    1. 前言 有人说过这么一句话"设计模式是可复用面向对象软件的基础",也就是说设计模式可以让代码复用性更高.学习设计模试是每个程序员从菜鸟走向大神的必经之路,巧妙地运用设计模式可以 ...

  5. Java设计模式(4 / 23):单例模式

    文章目录 单例模式的应用场景 饿汉式单例模式 懒汉式单例模式 改进:synchronized 改进:双重检查锁 改进:静态内部类 破坏单例 用反射破坏单例 用序列化破坏单例 解密 注册式单例模式 枚举 ...

  6. Java设计模式及应用场景之《单例模式》

    文章目录 一.单例模式定义 二.单例模式的结构和说明 三.懒汉式和饿汉式的实现 1.懒汉式 2.饿汉式 四.懒汉式和饿汉式的优缺点 五.双重检查加锁方式的实现 六.类级内部类方式的实现 七.枚举方式的 ...

  7. JAVA设计模式是个什么玩意儿_01_工厂方法模式

    1. 前言 工厂方法模式(Factory Method) 该模式属于创建型设计模式. 2. 定义 摘自<研磨设计模式> 陈臣.王斌 3.代码举例 public interface BMW ...

  8. JAVA设计模式是个什么玩意儿_04_建造者模式

    1. 说明 (1)英文名叫Builder,建造者模式,也叫生成器模式. (2)属于创建型模式. 2. 定义 要想实现同样的构建过程有不同的表现,自然的思路就是把构建过程独立出来,在生成器模式中把它称为 ...

  9. JAVA设计模式是个什么玩意儿_02_抽象工厂模式

    1. 定义 2. 思路 抽象工厂模式是工厂方法模式的进一步抽象,为创建一组相关或相互依赖的对象提供一个接口,无需指定它们的具体类.抽象工厂通常用于创一族产品,并且这组产品分不同的等级,不同的工厂生产不 ...

最新文章

  1. 没有学不会的C++:用户自定义的隐式类型转换
  2. IT项目管理入门知识
  3. 只有程序员才懂的手势 | 每日趣闻
  4. [Offer收割]编程练习赛50
  5. ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
  6. 结合传统与数字技术,构建逼真的机械设计
  7. 新一代大数据处理引擎 Apache Flink
  8. zabbix内存告警linux,配置zabbix当内存剩余不足10%的时候触发报警
  9. python 三维绘图库_Python第三方库matplotlib(2D绘图库)入门与进阶
  10. 前端控件JQuery Datatables使用——常用功能初始化
  11. SQL Server检索存储过程的结果集
  12. java 可以直接当自定义标示符_第2章 Java基本语法.ppt
  13. pip3 install tesserocr安装失败
  14. yii 获取当前域名_yii2 在域名后面加一个路径作为首页
  15. 格式工厂 wav 比特率_格式转换不知道用哪款软件好,有格式工厂就够了!
  16. 嵌入式linux应用开发完全手册 第2版面市
  17. 【Qt5】Windows下配置程序的产品、公司、版权、版本号等详细信息
  18. 树莓派ONVIF推流做网络摄像头
  19. 电子警察系统设计(原理+流程+论文)
  20. java淡蓝色怎么表示_最淡的蓝是什么颜色(淡蓝色配什么颜色好看)

热门文章

  1. OTT/IPTV互联网电视运营平台
  2. 工作这么多年,很多人竟然还搞不清Java日志体系!
  3. Mac下解决复制重复文件时,没有像Windows“保留二者”的选项 - Mac文件夹合并,保留重复文件 - xx(1).jpg
  4. Scala:用 Scala 进行 OO 教学
  5. html css加载不了_前端面试准备笔记之html和css(03)
  6. 【矩阵论】内积空间与等距变换(2)
  7. vue 监听表格里的数据变化_vue中监听object数据变化的基本原理
  8. python创建百万个文件_Python-实现对表插入百万条数据
  9. windows 7(32/64位)GHO安装指南(U盘引导篇)~
  10. PostgreSQL表的查询(难度适中)