设计模式-单例模式
Posted bosslv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-单例模式相关的知识,希望对你有一定的参考价值。
饿汉式单例
// 缺点: 在类不使用时也会加载,浪费内存 class Singleton private static final Singleton INSTANCE = new Singleton(); private Singleton() public static Singleton getInstance() return INSTANCE;
同步单例
// 缺点:在类创建成功后其实不需要同步,性能低 class Singleton private static Singleton instance; private Singleton() public static synchronized Singleton getInstance() if (instance == null) instance = new Singleton(); return instance;
双重检查锁单例
// 缺点:写法复杂,仍需要同步 class Singleton private static volatile Singleton instance; private Singleton() public static Singleton getInstance() if (instance == null) synchronized (Singleton.class) if (instance == null) instance = new Singleton(); return instance;
静态内部类单例
// 优点: 1.延迟初始化,不占用内存;2.无需同步,通过jvm类加载保证线程安全 class Singleton private Singleton() private static class SingletonHolder private static final Singleton INSTANCE = new Singleton(); public static Singleton getInstance() return SingletonHolder.INSTANCE;
枚举类单例
// 优点: 写法简单,序列化安全,避免反射攻击 // 没有懒加载 public enum Singleton INSTANCE; public static Singleton getInstance() return INSTANCE;
以上是关于设计模式-单例模式的主要内容,如果未能解决你的问题,请参考以下文章