单例模式-懒汉模式和饿汉模式

本文探讨了两种常见的单例模式实现——饿汉模式和懒汉模式。饿汉模式在类加载时即创建对象,速度快但占用空间;懒汉模式则在需要时才创建,牺牲速度换取空间。文章建议根据实际需求选择适合的模式,并提供了两种模式的Java实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看一张图,加强一下印象。在这里感谢百度图片。
上结论:
饿汉模式:在类加载时就创建对象,时间较快,比较占空间。可以采用静态内部类来解决这个问题。
懒汉模式::直到需要创建对象,采取创建对象,缺点时间就比较慢,优点就是利用时间换取空间
根据实际情况来选择合适的模式。我目前的水平比较喜欢饿汉模式。
在这里插入图片描述

在这里插入图片描述

懒汉模式-一种实现方式

public class LazySingleton {
	//将构造方法私有化,这样就创建不了对象了,那这个类还有啥作用呢。
	private LazySingleton() {
		
	}
	//先不创建好对象,不占用空间
	private static LazySingleton lazySingleton ;
	
	public static LazySingleton getInstance() {
		if (lazySingleton == null) { //如果没有创建对象,那么立刻就创建对象。
			lazySingleton = new LazySingleton();
		}
		return lazySingleton ;
	}
}
//main方法里面
LazySingleton lazySingleton = LazySingleton getInstance()

饿汉模式

public class HungrySingleton {
	//将构造方法私有化,这样就创建不了对象了,那这个类还有啥作用呢。
	private HungrySingleton() { }
	
	//类加载的时候就创建好一个对象,采用静态属性,可以采用静态方法
	private static HungrySingleton hungrySingleton = new HungrySingleton();
	
	public static HungrySingleton getInstance() {
		return hungrySingleton;
	}
}
	public static void main(String[] args) {
		
		HungrySingleton hungrySingleton01 = HungrySingleton.getInstance();
	}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值