单例模式的几种实现方式的对比

本文介绍了单例模式的两种实现方式:饿汉式和懒汉式。饿汉式是在类加载时就创建实例,而懒汉式则是在第一次调用getInstance方法时才创建实例。文章通过代码示例详细解释了这两种方式的区别。

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

(一)如果不考虑多线程,那么可以有如下两种写法

①(饿汉式:也就是我一上来就去new一个对象)

public class SignleTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Signleton signleton1 = Signleton.getInstance();
		Signleton signleton2 = Signleton.getInstance();
		System.out.println(signleton1 == signleton2);

	}

}

class Signleton {
	private static Signleton signleton = new Signleton();

	private Signleton() {

	}

	public static Signleton getInstance() {
		return signleton;
	


②(懒汉式:也就是我需要getInstace的时候才去new出一个对象)

	public static void main(String[] args) {
		Signleton signleton=Signleton.getInstance();
		Signleton signleton2=Signleton.getInstance();
		System.out.println(signleton==signleton2);
	}
	

}
class Signleton{
	private static Signleton signleton=null;
	private Signleton (){};
	public  static synchronized Signleton getInstance(){
		if(signleton==null)
		{
			synchronized (Signleton.class) {
				//延迟加载
				System.out.println("new 方法调用");
				signleton=new Signleton();
			}
			
		}
		return signleton;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值