简单的讲,单例模式就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
何时用到?线程池、缓存、日志对象、对话框、显卡驱动程序、打印机中都用到,spring中用的最多:Spring Context Factory用的是单例,bean默认都是单例,配置文件也是单例;有些全局性的东西也可以设置为单例。
在java中,java类加载器的先后顺序为:
懒汉式:
/**
-
懒汉式单例
-
在第一次调用的时候实例化自己
*/
public class Singleton1 {
//1、先将构造方法私有化
private Singleton1() {
}//2、然后声明一个静态变量保存单例的引用
private static Singleton1 singleton1 = null;//3、通过提供一个静态方法来获得单例的引用
public static Singleton1 getInstance() {
if (singleton1 == null) {
singleton1 = new Singleton1();
}
return singleton1;
}
}
饿汉式:
/** -
饿汉式单例
-
在类初始化时,已经自行实例化
*/
public class Singleton5 {
//1、将默认构造方法私有化
private Singleton5() {
}//2、声明静态变量,在类实例化之前就初始化变量,将对象引用保存
private static final Singleton5 singleton5 = new Singleton5();//3、开放静态方法,获取实例
public static Singleton5 getInstance() {
return singleton5;
}
}
作者:韩小春
来源:CSDN
原文:https://blog.csdn.net/qq_36413562/article/details/78768155
版权声明:本文为博主原创文章,转载请附上博文链接!