饿汉模式是在类加载机制的初始化阶段就实例了类的初始化。本质上就是借助jvm类加载机制,保证实例的唯一性(初始化过程只会执行一次)以及线程安全,
类加载过程:
- 加载二进制到内存中,生成对应的Class数据结构;
- 连接:a. 验证 b.准备(给类的静态成员变量赋默认值) c. 解析
- 初始化:给类的静态变量赋初值
只有在真正使用对应的类时,才会触发初始化,如(当前类是启动类即main函数所在的类、直接执行new操作、访问静态属性、访问静态方法、用反射访问类、初始化一个类的子类等)
下面直接上代码
/*** @author xzf* @create 2021-02-08 8:59*/public class HungrySingleton {private static HungrySingleton instance = new HungrySingleton();private HungrySingleton(){}public static HungrySingleton getInstance(){return instance;}}
