一、单例模式是Java中一种常见的设计模式。
二、单例模式的特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
三、单例模式的三种写法。
1、第一种:饿汉式,线程安全,多个线程时能保证只有一个实例。
/** * 饿汉式(线程安全) * @author xieke * */ public class Person { private static final Person person = new Person(); private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } //构造函数私有化 private Person() { } //提供一个全局的静态方法 public static Person getPerson() { return person; } }
2、第二种:懒汉式,线程不安全,多线程时不能保证只有一个实例。
/** * 懒汉式(线程不安全,多线程时不能保证只有一个实例) * @author xieke * */ public class Person2 { private String name; private static Person2 person; public String getName() { return name; } public void setName(String name) { this.name = name; } //构造函数私有化 private Person2() { } //提供一个全局的静态方法 public static Person2 getPerson() { if(person == null) { person = new Person2(); } return person; } }
3、双重检查,线程安全,多个线程时能保证只有一个实例。
/** * 双重检查 * @author xieke * */ public class Person4 { private String name; private static Person4 person; public String getName() { return name; } public void setName(String name) { this.name = name; } //构造函数私有化 private Person4() { } //提供一个全局的静态方法 public static Person4 getPerson() { if(person == null) { synchronized (Person4.class) { if(person == null) { person = new Person4(); } } } return person; } }
转载请注明出处: http://xieke90.iteye.com/blog/2235643
相关推荐
JAVA设计模式之单例模式。 一篇文章带你快速了解!
java设计模式之单例模式,通过例子说明8种单例设计模式。
java设计模式之单例模式
JAVA设计模式之单例模式(完整版)1[定义].pdf
java设计模式之单例模式详解,包含例子,详解。
入名所示,该文件为最详细的Java单例模式讲解并附有讲解代码。主要讲了单例模式的几种方法,懒汉模式、饿汉模式、静态内部类模式。着重讲解了懒汉模式下怎么实现线程安全。饿汉模式和静态内部类模式如何设置能够避免...
JAVA设计模式之单例模式(完整版)[归类].pdf
给同学上课时做的ppt
此文档为Tom老师的公开课的单例的7种写法的一个文档,充分分析单例模式,值得对设计模式有研究的童鞋下下来好好看看
项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。
主要介绍了java 设计模式之单例模式的相关资料,需要的朋友可以参考下
主要帮助大家全面解析Java设计模式之单例模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java设计模式-单例模式详解
2、单例类必须自己创建自己的唯一实例 3、单例类必须给所有其他对象提供这一实例 2、资源加载和性能:饿汉式在类创建的同时就实例化一个静态对象出来,不管之后会不会
主要介绍了Java设计模式之单例模式,以实例形式较为详细的分析了单例模式的概念、定义及简单实现技巧,需要的朋友可以参考下
计算机后端-Java-图解java设计模式037 单例模式JK.avi
主要为大家详细介绍了C++和java设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java设计模式,单例模式学习示例源码,创建单例,配置文件读取