先看一张图,加强一下印象。在这里感谢百度图片。
上结论:
饿汉模式:在类加载时就创建对象,时间较快,比较占空间。可以采用静态内部类来解决这个问题。
懒汉模式::直到需要创建对象,采取创建对象,缺点时间就比较慢,优点就是利用时间换取空间
根据实际情况来选择合适的模式。我目前的水平比较喜欢饿汉模式。
懒汉模式-一种实现方式
public class LazySingleton {
//将构造方法私有化,这样就创建不了对象了,那这个类还有啥作用呢。
private LazySingleton() {
}
//先不创建好对象,不占用空间
private static LazySingleton lazySingleton ;
public static LazySingleton getInstance() {
if (lazySingleton == null) {
//如果没有创建对象,那么立刻就创建对象。
lazySingleton = new LazySingleton();
}
return lazySingleton ;
}
}
//main方法里面
LazySingleton lazySingleton = LazySingleton getInstance() ;
饿汉模式
public class HungrySingleton {
//将构造方法私有化,这样就创建不了对象了,那这个类还有啥作用呢。
private HungrySingleton() {
}
//类加载的时候就创建好一个对象,采用静态属性,可以采用静态方法
private static HungrySingleton hungrySingleton = new HungrySingleton();
public static HungrySingleton getInstance() {
return hungrySingleton;
}
}
public static void main(String[] args) {
HungrySingleton hungrySingleton01 = HungrySingleton.getInstance();
}