了解23种设计模式-单例模式

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

文章介绍了四种Java单例模式:饿汉式、懒汉式、静态内部类和枚举单例。饿汉式在类加载时实例化,线程安全但资源浪费;懒汉式在使用时实例化,需加锁确保线程安全;静态内部类结合了两者优点,延迟加载且线程安全;枚举单例解决了线程同步和反序列化问题。

🎯

关键要点

  • 饿汉式单例在类加载时实例化,线程安全但资源浪费。

  • 懒汉式单例在使用时实例化,需要加锁以确保线程安全,写法相对复杂。

  • 静态内部类单例结合了饿汉式和懒汉式的优点,支持延迟加载且线程安全。

  • 枚举单例解决了线程同步和反序列化问题,无法通过反射获取多个实例。

延伸问答

什么是饿汉式单例模式?

饿汉式单例模式在类加载时实例化,线程安全但可能造成资源浪费。

懒汉式单例模式的优缺点是什么?

懒汉式单例模式在使用时实例化,确保线程安全,但写法相对复杂且性能较低。

静态内部类单例模式有什么优势?

静态内部类单例模式结合了饿汉式和懒汉式的优点,支持延迟加载且线程安全。

枚举单例模式如何解决反序列化问题?

枚举单例模式通过不提供构造方法,防止反射获取多个实例,从而解决反序列化问题。

如何实现线程安全的懒汉式单例模式?

可以通过在获取实例的方法中使用synchronized关键字加锁来实现线程安全。

四种单例模式中哪种最简单?

饿汉式单例模式是四种单例模式中实现最简单的一种。

🏷️

标签

➡️

继续阅读