java单例模式,其中的细节你注意到了吗
简介 Singleton UML 单例模式是应用最广的模式之一,它是为了确保某一个类在一个java虚拟机(进程)中有且只有一个实例存在. 带来的效益: 能够实现资源共享,避免由于资源操作时导致的性能或损耗. 能够实现资源调度,方便资源之间的互相通信. 控制实例产生的数量,达到节约资源的目的. 缺陷 : 扩展性差,单例一般没有接口,要扩展只能修改单例类的代码. 避免在单例中持有生命周期比单例对象短的引用,容易引起内存泄漏.如Android中的Context对象,需要使用 Application Context代替. 下面介绍单例的七种经典实现方法. 饿汉模式 public class Singleton { // 静态变量初始化, 由于静态变量在类加载过程中,就会被初始化,且类加载又jvm保证线程安全. // 所以这种方式 是线程安全的 private final static Singleton mInstance = new Singleton(); // 构造函数私有化 private Singleton() { // 判断存在则抛出异常, 为了避免反射调用,产生多个实例 if (...