设计模式:单例模式
什么是单例模式?
单例是指在程序运行的整个环境中仅存在一个实例,比如构建线程池的线程工厂、配置文件的管理器、数据库连接池的管理器等等,在这些场景下,一般为了节省内存或保证原子语义,只需要在环境中构建一个实例即可,单例模式(singleton pattern)就是为了实现单例的一种代码设计模式。
Java代码如何实现?
//饿汉式单例
//优点:①简单实用;②JVM保证线程安全(同一类只会加载一次)
//缺点:无论使用与否,类加载时就已经完成了实例化,占用内存
public class Mgr01{
//1.定义一个final的静态属性
private static final Mgr01 INSTANCE = new Mgr01();
//2.将构造方法私有化
private Mgr01(){
}
//3.提供一个获取实例的静态方法
public static Mgr01 getInstance(){
return INSTANCE;
}
}
//饿汉式单例:与Mgr01一样
public class Mgr02{
//1.定义一个final的静态实例
private static final Mgr02 INSTANCE;
//2.将实例的初始化延迟
static{
INSTANCE = new Mgr02();
}
//3.将构造方法私有化
private Mgr02