单例模式
单例模式
- 目的
使得类的一个对象成为该类系统中的唯一实例 - 使用场景
1、创建对象时占用资源过多,但同时有需要用到该类对象
2、对系统内资源要求统一读写,如读写配置信息
3、对多个实例内存在可能引起程序逻辑错误,如号码生成器
恶汉式
/**
* //恶汉式:创建对象实例的时候直接初始化 空间换时间
* Created by Kong on 2019/12/7.
*/
public class SingletonOne {
private static SingletonOne singletonOne = new SingletonOne();
private SingletonOne() {}
public static SingletonOne getSingletonOne() {
return singletonOne;
}
}
懒汉式
/**
* 懒汉式:类内实例对象创建时并不直接初始化,直到第一次调用get方法时,才完成初始化操作 时间换空间
* Created by Kong on 2019/12/7.
*/
public class SingletonTwo {
private static SingletonTwo instance;
private SingletonTwo() {}
public static SingletonTwo getInstance() {
if (instance == null)
instance = new SingletonTwo();
return instance;
}
}
恶汉式 PK 懒汉式
- 恶汉式线程安全
- 懒汉式线程风险
解决方案:


浙公网安备 33010602011771号