------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

单例设计模式:解决一个类在内存中只有一个对象
多个程序使用统一配置信息对象时,需要保证该对对象的唯一性。保证对象唯一性的实现步骤:1.将构造函数私有化:为了避免其他程序过多建立该对象,禁止其他程序调用该对象。
2.在类中创建一个本类对象:为了让其他程序可以访问该类对象
3.提供一个方法可以获取到该对象的方法:方便其他程序访问自定义的本类对象。(类方法的访问方式只有两种,建立对象或定义为静态方法)饱汉式:
public class testIO{public static void main(String[] args){Single s = Single.getInstance();}
}class Single
{private Single(){}//私有化构造函数,使得无法随意创建对象static Single s = new Single();//创建对象,由于被用于静态方法中,所以要加上static关键字public static Single getInstance(){return s;}
}

饿汉式:

class single2
{private single2(){}static single2 s2 = null;public static synchronized single2 getInstance(){ //2、而加了synchronized关键字后只能有一个线程进入执行,会导致效率低下if (s2==null) //1、注意:多个线程调用时,若某一个线程停在这儿,另一个线程也能进入执行。会导致单例失败。s2 = new single2();return s2;}//3、这样做比较好public static single2 getInstance2(){if (s2 == null){synchronized (Single.class) {if(s2==null)s2 = new single2();}}return s2;}
}


转载于:https://www.cnblogs.com/tozr/p/4126993.html

黑马程序员-学习日记(单例设计模式的两种类型)相关推荐

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

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

  2. 黑马程序员 学习日记(二)

    --Java培训.Android培训.iOS培训..Net培训.期待与您交流! --- 关键字static和extern的区别 1.修饰局部变量 1).static 修饰局部变量 static 修饰的 ...

  3. 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法

    好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...

  4. 黑马程序员C语言基础(第八天)复合类型(自定义类型)(结构体)、共用体(联合体)、枚举enum、 typedef

    黑马程序员C语言基础(第一天) 黑马程序员C语言基础(第二天) 黑马程序员C语言基础(第三天) 黑马程序员C语言基础(第四天)数据类型 黑马程序员C语言基础(第五天)运算符与表达式.程序流程结构.数组 ...

  5. php 恶汉单例,单例模式的两种方式(恶汉式,懒汉式)

    单例模式的两种形式(恶汉式,懒汉式) 单例模式的特点:解决了一个类在内存的唯一性,这个类的对象只有一个. 写单例模式的步骤: 1. 私有修饰构造方法 2. 在本类的成员位置, new 自己类的对象 3 ...

  6. 黑马程序员学习笔记-------c++提高编程

    c++提高编程 本阶段主要针对c++泛型编程和STL技术做详细讲解,探讨cpp更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只 ...

  7. 黑马程序员 学习毕老师java视频第14.15.16天

    ---------------------- <a href="http://edu.csdn.net/heima" target="blank"> ...

  8. 单例模式及单例类的两种实现

    单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在 ...

  9. 无监督方法实现C++、Java、Python 代码转换,程序员:出了bug怎么办,两种语言都要看吗?...

    点击上方"视学算法",选择加"星标" 重磅干货,第一时间送达 本文转载自:机器之心  |  参与:魔王 Facebook 提出的无监督代码转换方法 TransC ...

  10. caffe学习日记--lesson7:caffemodel可视化的两种方法

    在Caffe中,目前有两种可视化prototxt格式网络结构的方法: 使用Netscope在线可视化 使用Caffe提供的draw_net.py 本文将就这两种方法加以介绍 Netscope:支持Ca ...

最新文章

  1. Code爱好者必去的20个网站(开源项目托管网站)
  2. 计蒜客 挑战难题 爬楼梯
  3. 应用流量管理,新网络管理必修课
  4. Python关于文本中标点符号及其他的替换
  5. Linux shell ==运算符
  6. 新建和发布Windows服务的几个常见问题
  7. sql cast()函数
  8. QTP中VBS脚本下FSO、WSH的应用(二)
  9. 对POSIX和SystemV消息队列优化:用户态消息队列
  10. C程序设计语言现代方法09:函数
  11. Win10 Build9926 更新问题解决
  12. opencv手册_OpenCV之单目测距实现
  13. github中markdown语言的使用规则
  14. 【论文解读】深度学习目标检测 | R-CNN系列里程碑 | 一文弄懂Faster R-CNN
  15. 计算机论文有哪些方向,计算机论文研究方向有以下四类
  16. 中科大自主招生2018年笔试数学之四
  17. html打印26个字母,用js完成:输出26个英文字母任意3个字母的全部组合
  18. 常用英语命令(音标,释义)
  19. 做小红书推广快速涨粉的技巧_云媒易
  20. MATLAB[2]:绘图坐标轴的设置

热门文章

  1. ASP.NET 使用application和session对象写的简单聊天室程序
  2. 用 JavaScript 实现内存位翻转漏洞
  3. HDU 3072 (强连通分量)
  4. linux系统工程师的前途在哪里
  5. 【转】C/C++中宏使用总结
  6. MyEclipse安装配置maven插件
  7. Ryu控制器正则表达式字符串 r'[0-9]{1,4}|all' 分析
  8. mplab java失败_Microchip工程师社区 - MPLABX用PICC编译失败 - Microchip C语言编译器论坛 - 麦田论坛...
  9. ListView的headerView下拉刷新PullToZoomInListView分析
  10. html+css基础-1-屏幕居中、双飞翼布局、清除浮动