单例模式的使用场景:配置文件,工具类,线程池,缓存,日志等
单例模式的两者形式:饿汉模式,懒汉模式
两者的区别: 饿汉模式类加载的时候速度比较慢,获取对象的时候速度比较快,线程安全的
懒汉模式类加载的时候速度比较快,获取对象的时候速度比较慢,非线程安全的
/** * 单例模式之饿汉模式 */ public class Singleton1 { /** 私有构造函数*/ private Singleton1(){} /** 私有对象*/ private static Singleton1 singleton1 = new Singleton1(); /** 外部获取对象的方法*/ public static Singleton1 getInstance(){ return singleton1; } } /** * 单例模式之懒汉模式 */ public class Singleton2 { /** 私有构造函数*/ private Singleton2(){} /** 私有对象*/ private static Singleton2 singleton2; /** 外部获取对象的方法*/ public static Singleton2 getInstance(){ if(singleton2 == null) { singleton2 = new Singleton2(); } return singleton2; } }