单例模式的特点
单例类只能有一个实例
单例类必须自己创建自己的唯一实例
单例类必须给所有其他对象提供这一实例
饿汉模式
//饿汉模式,在类初始化时,自行实例化这个单例对象
public class Singleton {
private Singleton() {}
private static final Singleton singleton = new Singleton();
public static Singleton getInstance(){
return singleton;
}
}
我们发现,饿汉模式任何时候都会存在一个单例的对象,这个对象被static和final修饰,构造方法是私有的,因此避免了在外部被初始化。
在类装载的时候就创建,不管你用不用,先创建了再说,如果一直没有被使用,便浪费了空间,典型的空间换时间,每次调用的时候,就不需要再判断,节省了运行时间。
如果单例初始化的操作耗时比较长而应用对于启动速度又有要求,或者单例的占用内存比较大,再或者单例只是