Java_设计模式_单例设计模式(饿汉式和懒汉式)

本博文为子墨原创,转载请注明出处!
http://blog.csdn.net/zimo2013/article/details/8913678

注:开发常用饿汉式,因为饿汉式简单安全,懒汉式多线程的时候容易发生问题!

1.饿汉式

    一加载进内存就创建好了对象

2.懒汉式

    类加载进内存的时候,对象还没有存在,只有调用方法时才创建,注意安全问题

/*
单例设计模式-饿汉式
类一加载进内存就创建好了对象
*/
class Single
{
	private Single(){}
	private static final Single s = new Single();//s在Single类加载方法区时,静态就已经在堆中new了一个实体对象,返回地址给s
	public static Single getInstance()			//静态成员初始化在类加载完成
	{
		return s;
	}
}
/*
单例设计模式-懒汉式
类加载进内存的时候,对象还没有存在,只有调用方法时才创建
*/
class Single
{
	private Single(){}
	private static Single s = null;				//先不在堆中创建对象,在调用方法时创建
	public static Single getInstance()
	{
		if(s == null)//不使用该语句,也可以满足同步,但是省略后,效率就会降低
		{
			synchronized(Single.class)	//(锁)类名.class 
			{
				if(s == null)			//注意同步问题
					s = new Single();
			}
		}
		return s;
	}
}

你可能感兴趣的:(饿汉式,懒汉式,单例设计)