单例模式最常见的有两种:懒汉式 、饿汉式。 懒汉式就是你说的延迟加载,说白了,就是什么时候需要对象了再创建。 延时加载:是在运行的过程中需要应用此对象的时候再进行创建,避免了系统资源的浪费
class LazySingle {
// 懒汉式单例模式
// 在类加载时,不创建实例
private static LazySingle ls = null;// 静态私用成员,没有初始化
private LazySingle() {
// 私有构造函数,保证对象的唯一性
}
// 双重判断相比较直接加入synchronized关键字,提高了效率(不用每次都对锁进行判断)
public static LazySingle getInstance() {
if (ls == null) {
// 避免同时进入多个线程,产生死锁问题
synchronized (LazySingle.class) {
if (ls == null) {
ls = new LazySingle();
}
}
}
return ls;
}
} |