单例设计模式
单例
:顾名思义,某个类只能产生一个实例。要点
:1.构造方法私有化
2.必须自行创建这个类的实例
3.必须自行向系统中提供这个类的实例
1) 饿汉式
1 | public class Singleton{ |
总结:类加载时初始化实例对象,解决了线程安全问题,但是不能实现延迟加载的问题
2) 懒汉式
1 | public class Singleton{ |
总结:能够实现延迟加载,也能解决线程安全问题,因为使用了同步所以效率非常低,不建议使用
3) 内部静态类
1 | public class Singleton{ |
总结:可以实现延迟加载,能够解决线程安全问题,建议使用
4) 枚举
1 | public enum Singleton{ |
总结:天然的线程安全,但是不能实现延迟加载。使用较少,但是可以使用