关于单例模式的总结
主要:
1.饿汉式单例模式(线程安全,调用效率高,不能够延时加载)
2.懒汉式单例模式(线程安全,调用效率不高,可以延时加载)
其它:
3.双重检测实现单例模式(由于JVM底层内部模型的原因,偶尔会出现问题,不建议使用)
4.通过静态内部类实现单例模式(线程安全,调用效率高,可以延时加载)
5.通过枚举实现单例模式(线程安全,调用效率高,不能实现延时加载,但是可以天然的防止反射和反序列化的漏洞,因为它是基于JVM底层实现的)
如何选用单例模式?
单例对象 占用资源少,并且不需要延时加载的话,枚举式优于饿汉式
单例对象占用资源大,需要延时加载的话,静态内部类式优于懒汉式