黑马程序员——单例设计模式

原创 2015年11月19日 20:13:58
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

单例模式

      单例模式,顾名思义,当需要保证某个类只能有一个实例时,就要使用单例。

如何保证类在内存中只有一个对象:

     1.控制类的创建,不让其他类来创建本类的对象。即自定义私有构造函数。

    2.在本类中定义一个本类的对象。

    3.提供公共的访问方式,将自己创建的对象提供出去。

实现方式:

class Singleton{
	//1.私有构造器
	private Singleton(){}
	//2.创建本类对象
	private static Singleton s = new Singleton();
	//3.对外提供公共访问方法
	public static Singleton getInstance(){
		return s;
	}
}

      该实现方式称为“饿汉式”,代码简洁,是开发中最常用的单例实现方式。

class Singleton{
	//1.私有构造器
	private Singleton(){}
	//2.声明一个本类的引用,并初始化为null
	private static Singleton s = null;
	//3.对外提供公共访问方式
	public static Singleton getInstance(){
		//利用双重判断提高效率
		if(s==null){
			//同步代码块的使用解决了多线程访问的安全问题
			synchronized(Singleton.class){
				if(s==null)
				   s = new Singleton();
			}
		}
		return s;
	}
}

    该实现方式称为“懒汉式”,是单例的另一种实现方式,开发中很少用。

   两种实现方式的区别

       饿汉式是以空间换时间,即首先创建对象,相对于懒汉时来说比较浪费空间,但代码实现简单,节省了时间;

       懒汉式是以时间换空间,对象延迟创建,但代码实现繁琐,且多线程访问时容易发生安全隐患。

       所以,在实际使用过程中,多数情况使用饿汉式。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员 学习笔记——Java 二十三设计模式之单例

----------------------android培训 、java培训、期待与您交流! ---------------------- Java 中解决某一问题最行之有效的方法是设计模式。...

黑马程序员 JAVASE——单例设计模式

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 单例设计模式 一:简介: 单例模式是一种最简单的软件设计模式之一。这一...

黑马程序员——第十五篇:线程池、单例设计模式、图形化界面、网络编程

------- android培训、   href="http://www.itheima.com" target="blank">java培训、期待与您交流! ---------- 1. 线程...

黑马程序员——Java基础->单例设计模式

设计模式解决问题最行之有效的思想。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。单例设计模式 解决的问题:...

java基础--静态(函数、代码块)、单例设计模式、继承、final修饰符

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1、静态关键字:static    1)用法:       static是一个修饰符,用于修...

黑马程序员——面向对象06(static、对象初始化、单例设计模式)

——- android培训、java培训、期待与您交流! ———- 1.1:static(静态)关键字 1,static是一个修饰符,用于修饰成员(成员变量和成员函数)。当成员被静态修饰后,...

黑马程序员——单例设计模式

单例设计模式

黑马程序员——JAVA基础_02(static、单例设计模式)

static修饰符       用法:static是一个修饰符,用于修饰成员(成员变量,成员函数)。当成员被静态修饰后,就多了一个调                用 方式,除了可以被对象调用外,还可...

黑马程序员——继承、单例设计模式

 文档注释 格式:javadoc –d 目录 –author  -version  java文件名。 形成文档时,所创建的类必须用public修饰,只有publ...

黑马程序员——单例设计模式

------- android培训、java培训、期待与您交流! ---------- 设计模式:解决某一类问题最有效的方法 Java中有23中设计模式   解决的问题:保证一个类在内存中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员——单例设计模式
举报原因:
原因补充:

(最多只允许输入30个字)