单例模式

一、单例模式定义

确保某个类只有一个实例,并自行实例化向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。

二、单例模式的实现

     ①、饿汉模式(立即加载模式)

        本身是线程安全的

public class Hungry {

	private static Hungry hungry = new Hungry();
	
	private Hungry(){
		
	}
	
	public static Hungry getHungry(){
		return hungry;
	}
}

     ②、懒汉模式(延迟加载模式)

      可进行优化,将synchronized关键字放到if语句前,进一步优化可以使用两个synchronized关键字。

public class Lazy {

	private static Lazy lazy;
	
	private Lazy(){
		
	}
	
	public synchronized static Lazy getLazy(){
		if(lazy == null)
		   lazy = new Lazy();
		return lazy;
	}
}

三、为什么在单例模式中使用static

   在单例模式中,构造函数都是私有的,也就是说在外部对象中无法通过new的形式调用实例的函数,那么只能通过调用静态函数的形式得到实例,再调用其中函数 ,静态函数只能访问静态变量,因此在单例模式中使用static

四、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值