单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。 单例模式又可以分为饿汉式和懒汉式,顾名思义饿汉式就是很饿,所以会先创建出一个对象来,等待消费.懒汉式就是很懒,会等到调用时再创建出一个对象
public class LazySingleton {
//保证 instance 在所有线程中同步
private static volatile LazySingleton instance=null;
//避免类在外部被实例化
private LazySingleton(){}
public static synchronized LazySingleton getInstance() {
//getInstance 方法前加同步
if(instance==null) {
instance=new LazySingleton();
}
return instance;
}
}
public class HungrySingleton {
private static final HungrySingleton instance=new HungrySingleton();
private HungrySingleton(){}
public static HungrySingleton getInstance()
{
return instance;
}
}