`
strawberry2013
  • 浏览: 18102 次
文章分类
社区版块
存档分类
最新评论

黑马程序员_Java基础_单例设计模式(饿汉式和懒汉式)

 
阅读更多

-------android培训java培训、期待与您交流! ----------

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

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

/*
单例设计模式-饿汉式
类一加载进内存就创建好了对象
*/
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;
	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics