Java 单例模式全面学习
介绍 什么是单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点 解决什么问题:省略创建对象所花费的时间,不需要频繁创建对象,减轻 GC 压力。 单例模式有以下几种实现方式: 线程安全 并发性能好 可以延迟加载 序列化/反序列化安全 能抵御反射攻击 饿汉式 Y Y 懒汉式-不加锁 Y Y 懒汉式-加锁 Y Y 双重检查 Double Check Y Y Y 静态内部类 Y Y Y 枚举 Y Y Y 懒汉式 第一次使用的时候才进行加载 // 非线程安全 public class Singleton { private Singleton(){} private static Singleton singleton; public static Singleton getSingleton(){ if (singleton == null){ singleton = new Singleton(); } return singleton; } } // 加锁线程安全,但是每次获取都会加锁判断 public class Singleton { private Singleton(){} private static Singleton singleton; public static synchronized Singleton getSingleton(){ if