一、饿汉式分类
- 饿汉式(静态常量)
- 饿汉式(静态代码块)
- 构造器私有化
- 类的内部创建对象
- 向外暴露一个静态的公共方法 getInstance
二、饿汉式单例模式
1、避免线程同步的问题
2、饿汉式单例模式在类加载时完成了初始化,所以类加载较慢,如果不使用的浪费内存空间,但获取对象的速度快。
三、实例
1、饿汉式(静态变量)
public class EagerSingleton(){
private static final EagerSingleton instance = new EagerSingleton();
private EagerSingleton(){};
public static EagerSingleton getInstance(){
return instance;
}
}
2、饿汉式(静态代码块)
public class EagerSingleton(){
private static EagerSingleton instance = null;
static{
instance = new EagerSingleton();
}
private EagerSingleton(){};
public static EagerSingleton getInstance(){
return instance;
}
}