设计模式学习之总结-单例模式by一只菜鸟

单例模式是java程序面试过程中最常被问到的设计模式之一。好了,不废话

按照字面的理解:单例模式就是只能new出来一个对象的类


通过单例模式我们可以保证系统中只有一个实例,比如说webserver的application,易于被外界访问,从而节约系统资源

就比如说在邮局里面有一本电话本,有需要的人拿出来查一下,而不是为每次查电话的人都拿出一本新的出来,查完再回收。

一般来说,我们常用到的单例模式一般只分为饿汉式跟懒汉式单例模式(这里不讨论饿汉的特殊变种:静态块,静态内部类,双重校验锁,枚举)

懒汉式单例模式:

主要是线程安全,但是效率很低(99%的情况不需要线程同步)


public class Singleton{
	private Singleton(){}
	
	private static Singleton instance = null;
	
	public static synchronized Singleton getInstance(){
		if(instance == null)
			instance = new Singleton();
		return instance;
	}
}


饿汉式单例模式:

效率高,但是占资源,顾名思义(超级会吃的汉纸,把资源都吃掉了!)


public class Singleton{
	private Singleton(){}
	
	private static Singleton instance = new Singleton();
	
	public static Singleton getInstance(){
		return instance;
	}
	
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值