Java23种设计模式之单例模式(饿汉式单例)
第一次写博客,学习并记录一下,欢迎大佬指出问题!
单例模式
**模式介绍: ** 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意:
- 1、单例类只能有一个实例。
- 2、单例类必须自己创建自己的唯一实例。
- 3、单例类必须给所有其他对象提供这一实例。
介绍采摘于: https://www.runoob.com/design-pattern/singleton-pattern.html
单例模式 - 饿汉式单例
在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。
public class HungryMan {
// 一上来就创建对象; static 在类一加载的时候 就在内存开辟空间 如果有很多常量所以会造成内存开销大
// 类加载的方式是按需加载,且只加载一次。 也解释了为什么饿汉式单例天生线程安全。
private static HungryMan hungryMan = new HungryMan();
private HungryMan() {
}
public static HungryMan getInstance() {
return hungryMan;
}
}
class HungryManTest{
public static void main(String[] args) {
HungryMan hungryMan = HungryMan.getInstance();
HungryMan hungryMan2 = HungryMan.getInstance();
// 打印两个对象的hashCode(),如果一样则是一个对象
System.out.println(hungryMan.hashCode());
System.out.println(hungryMan2.hashCode());
}
}