黑马程序员-学习日记(单例设计模式的两种类型)
2014-11-27 19:11
141 查看
------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; } }
相关文章推荐
- 【黑马程序员】Java基础学习博客——两种设计模式
- 黑马程序员_学习日记2_有关C#基础知识总结归纳之对象和类型
- 黑马程序员_学习记录06:静态以及单例设计模式
- 黑马程序员--Java设计模式学习(一)
- 黑马程序员-操作基本数据类型的流对象学习日记
- Android设计模式学习日记04--单例模式
- 黑马程序员_学习日记37_601基础加强(enums_truct_类型转换_值类型与引用类型_异常处理_函数返回值)
- 黑马程序员 学习笔记四: 单例设计模式
- 黑马程序员_设计模式学习(学习积累中,未完待续)
- 黑马程序员_java基础学习笔记之单例设计模式
- 黑马程序员——Java学习笔记之12——已接触的“设计模式”总结
- 黑马程序员_学习日记73_725ASP.NET(禁用Cookie、ASP.NET中的重要对象、JavaScript实现AJAX、两种Json格式的序列化方法、JQuery中实现ajax的五种方法)
- 黑马程序员java学习第六天,static静态的使用及单例设计模式
- 黑马程序员学习笔记——单例设计模式
- 黑马程序员 java学习笔记3-IO流之字节流与装饰设计模式
- 黑马程序员_JAVA学习日记_JAVA中API中数据类型包装类(Integer),System,Runtime,Date
- 设计模式学习日记二(持续更新)
- 黑马程序员------java学习笔记之单例设计模式
- Android设计模式学习日记05--模板模式
- Android设计模式学习日记03--观察者模式