设计模式-单例模式之饿汉式-多线程

本文介绍了单例设计模式的概念,探讨了其在系统内存中确保唯一实例存在的实现方式及优缺点。通过具体代码示例展示了如何在Java中实现单例模式。

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

单例设计模式概述:

单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供。

优点:

在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象

单例模式无疑可以提高系统的性能。

缺点:

没有抽象层,因此扩展很难。

职责过重,在一定程序上违背了单一职责。

package cn.itcast_03;

public class Student {
	// 构造私有,目的不让外界创建对象
	private Student() {
	}

	// 自己造一个
	// 静态方法只能访问静态成员变量,加静态
	// 为了不让外界直接访问修改这个值,加private
	private static Student s = new Student();

	// 提供公共的访问方式
	// 为了保证外界能够直接使用该方法,加静态
	public static Student getStudent() {
		return s;
	}
}

package cn.itcast_03;

/*
 * 单例模式:保证类在内存中只有一个对象。
 * 
 * 如何保证类在内存中只有一个对象呢?
 * 		A:把构造方法私有
 * 		B:在成员位置自己创建一个对象
 * 		C:通过一个公共的方法提供访问
 */
public class StudentDemo {
	public static void main(String[] args) {
		// Student s1 = new Student();
		// Student s2 = new Student();
		// System.out.println(s1 == s2); // false

		// 通过单例如何得到对象呢?

		// Student.s = null;不能让外界改这个值

		Student s1 = Student.getStudent();
		Student s2 = Student.getStudent();
		System.out.println(s1 == s2); // true

		//System.out.println(s1); // null,cn.itcast_03.Student@175078b
		//System.out.println(s2); // null,cn.itcast_03.Student@175078b
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值