单例模式之懒汉式和饿汉式
一、单例模式是什么?
保证整个系统中一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。
单例模式实现格式一般为:
- 构造方法私有化
- 定义一个该类的静态变量
- 对外提供一个public返回实例的静态方法
二、几种单例模式
1.懒汉模式
在初始化类的时候,不创建唯一的实例,而是等到真正需要用到的时候才创建。可以理解为一个懒人,饿的时候才想起要创建一个(吃饭)对象。
注意必须加上同步,否则有可能依然创建多个实例。
代码如下:
//多线程下的单例模式 懒汉模式
public class A1 {
//定义一个该类的静态变量
public static A1 a;
//构造方法私有化
private A1(){
}
//对外提供一个public返回实例的静态方法
public synchronized static A1 getInstance(){
if (a==null){
//如果该变量为null,生成该对象
a = new A1();
return a;
}else {
//如果不为不null,直接返回该对象
return a;
}
}
}
//测试类
public