1. 单例模式含义

所谓的单例设计模式,就是采取一定的方法保证整个软件系统中,某个类只能存在一个对象实例。

单例设计模式

2. 单例设计模式的两种实现方法

  • 饿汉式:不管是否需要该实例,我事先就把该实例创建好,等待被使用。
  • 懒汉式:啥时候需要该实例,啥时候创建该实例,若已存在创建好的实例,则直接返回该存在的实例

3. 饿汉式代码实现

package con.xiaokang.singleton;public class SingletonTest {public static void main(String[] args) {Bank bank1 = Bank.getInstance();Bank bank2 = Bank.getInstance();//通过比较bank1和bank2的地址是否相等来判断是否返回一个的对象实例System.out.println(bank1==bank2);//输出true}
}
/** 这种方式属于饿汉式的单例设计模式,*/
class Bank{//1. 私有的静态构造器private Bank(){}//2.内部创建类的对象,所谓的饿汉式就是不管需不需要该实例,直接创建好,等待使用即可。private static  Bank instance = new Bank();//3. 提供公共的方法,返回类的对象public static Bank getInstance() {return instance;}}

4. 懒汉式代码实现

package con.xiaokang.singleton;public class SingletonTest2 {public static void main(String[] args) {Order order1 = Order.getInstance();Order order2 = Order.getInstance();//比较order1和order2是否为同一实例System.out.println(order1 == order2);//输出为true}
}
/** 懒汉式单例设计模式*/
class Order{//1.私有化类的构造器private Order() {}//2. 生命当前类的变量private static Order instance = null;//3. 声明返回当前类对象的方法,所谓懒汉式就是,啥时候需要该实例时候后创建该实例,若该实例已存在,则直接返回存在的实例public static Order getInstance() {if(instance == null) {instance = new Order();}return instance;}
}

5. 饿汉式  VS  懒汉式

  • 懒汉式

坏处:线程不安全,需要改进。

好处:啥时候需要啥时候创建对象,延迟了对象的创建节省了内存。

  • 饿汉式

坏处:一开始就创建了对象,使对象的加载时间过长。

好处:线程是安全的。

6. 单例设计模式优点

由于只生成了一个实例,所以节省了系统性能开销。

单例设计模式优点

7. 单例设计模式的应用场景

单例设计模式的应用场景

8. 单例设计模式的知识点

使用了java中的权限修饰符。

Java设计模式——单例设计模式/权限修饰符的使用相关推荐

  1. java的单例设计模式

    java的单例设计模式包括:饿汉设计模式和懒汉设计模式: 步骤: 1.创建一个对象把他设置为私有的成员变量,保证唯一 2.私有构造方法,防止new一个对象. 3.定义一个公开的静态方法,返回第一步创建 ...

  2. 黑马程序员——JAVA笔记——单例设计模式

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 在JAVA开发中单例设计模式是一种常见的的设计模式,一般来说单例设计模式分为懒汉式和饿汉式. 然 ...

  3. Java设计模式-单例设计模式

    文章目录 前言 一.什么是设计模式? 二.单例模式介绍 1.单例模式的目的 2.单例模式的定义 单例模式的设计与实现要点: 3.单例模式的两种实现方式 (一)饿汉式创建 (二)懒汉式创建 4.单例模式 ...

  4. java之单例设计模式

    单例设计模式分三种:懒汉式单例设计.饿汉式单例设计.登记式单例设计(可忽略) 单例设计模式的特点: 单例设计类中只能有一个实例. 单例类必须创建自己的唯一实例. 单例类必须给所有其他对象提供这个实例 ...

  5. Java设计模式—单例设计模式(Singleton Pattern)完全解析

    转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用 ...

  6. Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围...

    1.Java有三种访问权限修饰符,分别为public.protected.private,还有一种为缺省权限修饰符的情况,记为default.其中,可以由public和default来修饰类:这四种修 ...

  7. java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)

    final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...

  8. Java——类成员的访问权限修饰符(private、protected、public、default)

    本文转载自:https://blog.csdn.net/qq_41420688/article/details/83348546 1. 作用 封装将数据和操作连接起来.封装的一个重要属性:访问控制. ...

  9. 面试官最喜欢考的设计模式---单例设计模式

    一.讲在前面的废话 笔者曾经多次面试都遇到了这个问题,请你说一下软件的设计模式,一般我们都会把23种模式例举几个出来,如果没有说错,你一定会列举单例设计模式,这样的话你就中了面试官的圈套了.接下来的一 ...

最新文章

  1. 安装、部署和卸载解决方案
  2. Nacos配置管理-配置热更新
  3. 三十七 Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中...
  4. ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的?...
  5. Swift实现UIKit Dynamic动画
  6. day-60Django
  7. 游戏行业数据类丛书_理论丛书:高维数据101
  8. 和自己“卷”才是王道
  9. CmsEasy7.6.3.2逻辑漏洞
  10. 设计模式(四)行为型之模板方法模式、策略模式、命令模式、责任链模式
  11. Matlab Coder将m文件转换成C/C++
  12. Windows聚焦问题修复
  13. 讯飞输入法pad版x86_讯飞输入法Pad版下载
  14. web浏览器下载文件没响应不报错
  15. python怎么模拟点击网页按钮?
  16. 电路中的正弦信号 Sin
  17. 离散数学-数理逻辑知识整理(修改版)
  18. 2020 全国大学生数学建模竞赛C题思路+代码
  19. 0基础如何自学web前端?如何找工作?
  20. Lua学习笔记--table

热门文章

  1. 04-31.eri-test Como ler um arquivo JSON no Java
  2. WPF的自动折行面板
  3. 微信小程序如何引用iconfont图标
  4. 妈妈的情绪,决定孩儿子的未来
  5. DDD-四种业务模型
  6. 方兴未艾的计算广告学——微软亚洲研究院高级研究员 刘铁岩
  7. 前10强中【8强出炉】!第二轮评审圆满完成
  8. 【杂学第十二篇】oracledb_exporter监听oracle19c数据库出现libclntsh、ORA-12162、ORA-00942异常解决
  9. 【亲测有效】解决GitHub下载过慢和下载项目失败的问题
  10. EPLAN教程 | 易盼软件钻孔排列样式