当前位置:首页 > 开发 > 编程语言 > Java > 正文

JAVA 单例的两种模式

发表于: 2012-02-16   作者:elan1986   来源:转载   浏览次数:
摘要: /** * 单例模式:保证一个java的类只有一个实例 * 可以通过将构造方法声明成私有的,在类内部创建实例 * 对外提供一个公用方法来获取这个实例 * 饱汉模式:一般认为饱汉模式安全。每次申请一次内存,宁撑死不挨饿 * 饥汉模式:注意饥汉模式下的公用方法必须是线程同步的,原因???? * 其他模式:定义一个类,构造方法为private,所有方法为sta
/**
 * 单例模式:保证一个java的类只有一个实例
 *   可以通过将构造方法声明成私有的,在类内部创建实例
 *   对外提供一个公用方法来获取这个实例
 *   饱汉模式:一般认为饱汉模式安全。每次申请一次内存,宁撑死不挨饿
 *   饥汉模式:注意饥汉模式下的公用方法必须是线程同步的,原因????
 *   其他模式:定义一个类,构造方法为private,所有方法为static的
 */
public class Singleton {
	/**1.饱汉模式
	 * 每次都要生成一次对象,所以饱了。这样总的类对象不是多个了吗?
	 * 是指每次调用这个类时都要new一次吗?可是内存不是只有一份吗?
	 */
	private Singleton(){//构造方法是私有的		
	}
	//实例化代码放在静态代码块里可以提高程序执行效率,但可能更占空间
	private final static Singleton instance = new Singleton();
	//提供公用方法,用于获取类内部的类实例
	public static Singleton getInstance(){
		return instance;
	}
	
	
	/**2.饥汉模式,注意其getInstance方法是synchronized的
	 * 使用getInstance判断,当实例为空时才生成
	 * 不用每次生成对象,第一次使用生成实例
	 * 即刚开始类实例对象为null,还未申请内存。在getInstance里针对类实例进行判断
	 * 为空,即饥饿状态,需要创建后返回,否则直接返回
	 * @author wybin
	 */
	private Singleton(){
	}
	private static instance = null;//先声明一个类本身实例成员。初始化为空。先不申请内存
	public static synchronized Singleton getInstance(){
		if(instance == null) instance = new Singleton();
		return instance;
	}
	
	/**3.其他模式(自己猜的)
	 * 构造方法为private
	 * 其他方法全部为static
	 */
	private Singleton(){
	}
	private static instance = null;
	private static Singleton getInstance(){
		if(instance == null) instance = new Singleton();
		return instance;	  
	}
	
}

JAVA 单例的两种模式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
基本概念 Singleton 是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点.对
单例设计模式-------懒汉式,饿汉式 单例设计模式是一种很常见的设计模式 在这里介绍两种单例设计模
定义: 确保某一个类只有一个实例,而且自动实例化并向整个系统提供这个实例。 代码: Singleton类
java中的单例模式 HK学习笔记 首先定义一个皇帝 Emperor.java public class Emperor { private stat
保证一个类在内存中的对象唯一性,需要以下三步: 1. 不允许其他模块用new创建该类对象。(即把该类
这个模式是非常有意思,并且比較简单,可是我还是要说由于它使用的是如此的广泛,如此的有人缘,单
java设计模式之——单例模式 1,什么是单例模式? 单例模式确保一个类只有一个实例,自行提供这个实
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。 特点: 1,一个类只
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。 特点: 1,一个类只
概念:   java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号