单例模式

原创 2015年11月20日 14:54:43

单例模式实现方式最常见的有三种:

1)懒汉式

2)饿汉式

3)双重锁式

/**
 * 
 * @author: muyichun
 * @date  : 2016年3月22日10:49:47
 * @function: 单例模式
 */
public class Main implements Runnable{
	
	public static void main(String[] args) throws Exception {
		Main m1 = new Main();
		Main m2 = new Main();
		Main m3 = new Main();
		Main m4 = new Main();
		Main m5 = new Main();
		Main m6 = new Main();
		Main m7 = new Main();
		Main m8 = new Main();
		Main m9 = new Main();
		Main m10 = new Main();
		m1.run();
		m2.run();
		m3.run();
		m4.run();
		m5.run();
		m6.run();
		m7.run();
		m8.run();
		m9.run();
		m10.run();
	}

	@Override
	public void run() {
		Singleton s = Singleton.getInstance();
	      System.out.println(s);
	}

}
/**
 * 单例模式
 */
class Singleton{
	private volatile static Singleton instance = null; //null延迟加载
	private Singleton(){};                    //防止被实例化
	
	public static Singleton getInstance(){
		if (null == instance) {
			synchronized (Singleton.class) {
				if (instance == null)   instance = new Singleton();
			}
		}
		return instance;
	}
	/* 如果该对象被用于序列化,可以保证对象在序列化前后保持一致 */  
    public Object readResolve() {  
        return getInstance();  
    }  
}


贴上自己喜欢的代码方式!


单例模式的扩展及其应用

  • 2017年12月03日 16:06
  • 38KB
  • 下载

单例模式(Singleton)的6种实现

  • 2017年11月02日 11:14
  • 1.17MB
  • 下载

三种单例模式的C++实现

在Java中,经常会用到单例模式,所谓的单例模式,即是只能返回一个对象的实例,在面试中一般情况下,都会做相关的试题。 本文用c++实现单例模式,与java开发有一定的相关性,共享。 本文转载:htt...

java中的单例模式

  • 2017年05月21日 22:02
  • 5KB
  • 下载

单例模式SingletonMode

  • 2015年08月04日 00:00
  • 10KB
  • 下载

单例模式在多线程中的安全性研究

关于一般单例模式的创建和分析在我的另一篇博客《Java设计模式——单件模式》中有详细说明。只是在上篇博客中的单例是针对于单线程的操作,而对于多线程却并不适用,本文就从单例模式与多线程安全的角度出发,讲...

iOS单例模式

  • 2015年08月01日 17:34
  • 62KB
  • 下载

Headfirst(五)单例模式C++实现

  • 2015年10月21日 15:24
  • 495KB
  • 下载

Spring单例模式与线程安全ThreadLocal

Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实...

Java单例模式深入理解

  • 2015年04月15日 19:43
  • 9KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式
举报原因:
原因补充:

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