程序开发时,有些对象我们只需要一个,比如;配置文件,工具类,线程池,缓存,日志对象等。
懒汉模式
单例模式保证整个应用中某个实例有且只有一个
饿汉模式
/*
* 饿汉模式(线程安全)
* 类初始化创建的时候创建唯一实例
*/
public class Singleton1 {
private Singleton1(){}
private static Singleton1 instance;
public static Singleton1 getInstance(){
return instance;
}
}
懒汉模式
/*
* 懒汉模式
* 调用的时候才去创建
*/
public class Singleton2 {
private Singleton2(){}
private static Singleton2 instance;
//synchronized保证懒汉模式线程安全
public static synchronized Singleton2 getInstance(){
if (instance==null) {
instance=new Singleton2();
}
return instance;
}
}