在实现单例模式时,常见的有哪些实现方式?

提问者:帅平 问题分类:面试刷题
在实现单例模式时,常见的有哪些实现方式?
5 个回答
鹿归时心喜
鹿归时心喜
枚举(Enum):
优点:线程安全,实现简单,可以防止反射和序列化攻击。
缺点:无法延迟加载。
发布于:7个月前 (10-08) IP属地:四川省
兮和
兮和
静态内部类(Static Inner Class):
优点:延迟加载,线程安全,实现简单。
缺点:无法传递参数给构造函数。
发布于:7个月前 (10-08) IP属地:四川省
忆雪
忆雪
双重检查锁定(Double-Checked Locking):
优点:延迟加载,线程安全。
缺点:实现较为复杂。
发布于:7个月前 (10-08) IP属地:四川省
自然萌鹿鹿
自然萌鹿鹿
懒汉式(Lazy Initialization):
优点:延迟加载,只有在第一次使用时才会创建实例。
缺点:线程不安全,需要考虑多线程同步问题。
发布于:7个月前 (10-08) IP属地:四川省
与风为伴
与风为伴
饿汉式(Eager Initialization):
优点:线程安全,实现简单,不需要考虑多线程同步问题。
缺点:在类加载时就创建实例,可能会造成资源浪费。
发布于:7个月前 (10-08) IP属地:四川省
我来回答