单例模式
设计模式是人们在开发中总结抽象的一些常用的程序设计范式。23种设计模式汇总如下图所示:
单例模式是这样一种设计模式,使得一个类只能有一个实例。单例模式主要有以下5种实现方法。
饿汉式
饿汉式单例模式在类加载过程中就实例化类对象,因此称为“饿汉”。由于Java类加载的过程本身是线程安全的,因此饿汉式的优点是无需额外同步即线程安全,并发效率高,但由于无法延迟加载,导致占用空间资源。
package singleton;
/**
* 饿汉式单例模式
* 优点:类加载过程是线程安全的,对象在类加载过程中实例化,因此也是线程安全的
* 缺点:没有使用对象时对象已经创建,消耗空间资源
* @author weiyx15
*
*/
public class SingletonHungry {
private static SingletonHungry instance = new SingletonHungry(); // 类初始化时,立即加载对象
private SingletonHungry() {
} // 私有构造方法,外部不能new
public static SingletonHungry getInstance() {
return instance;
}
}
懒汉式
懒汉式单例模式在第一次调用getInstance方法时才实例化对象,因此属于延迟