学习路径:https://coding.imooc.com/learn/list/270.html
特点:该模式下的类十分饥渴,JVM装载类的时候就实例化对象。
public class HungrySingleton {
private final static HungrySingleton hungrySingleton = new HungrySingleton();
private HungrySingleton(){}
public static HungrySingleton getInstance() {
return hungrySingleton;
}
}
- 单例实例在类加载时创建 – 线程安全
类加载、初始化相关
/**
* 类初始化时就被实例化,虽然开始赋值为null, 实质还是使用类时即存在单例对象
*/
public class HungrySingleton {
// 静态成员变量
private final static HungrySingleton hungrySingleton = null;
// 静态代码块, 静态成员和代码块按代码编写顺序执行,new逻辑要放到第二步
static {
HungrySingleton = new HungrySingleton()
}
// 私有构造方法
private HungrySingleton(){}
public static HungrySingleton getInstance() {
return hungrySingleton;
}
}
对比懒汉式
https://blog.youkuaiyun.com/chenghan_yang/article/details/90447741