介绍:单例模式的两种方式,一种是饿汉式,就是在类初始化的时候,创建对象,这种方式是线程安全的,在程序运行期间就这一个对象。
另一种是懒汉式,懒汉式是在第一次使用时才创建对象,但是如果在多线程环境中要考虑线程安全问题。
好~直接上代码截图 ![]()
1、饿汉式

输出结果:符合单例模式

2、懒汉式

输出结果:多次实例化对象,存在多线程安全问题

3、解决懒汉式存在多线程安全问题——双重锁方法(在static方法上添加synchronized或者synchronized(类名.class))

输出:符合单例模式

注意:如果使用synchronized(类名.class)这种方法时,直接上代码截图

输出结果:多次实例化对象,不符合单例模式

**这时需要多加一步操作

输出结果:符合单例模式
![]()
总结:本人之前只是学了单例模式的书面知识,并没有真正在实践中遇到过,这次在看别人写的程序的时候遇到了这种情况,决定好好研究一下,毕竟是初次接触,因此内容有限敬请读者谅解,后续若有更多个人见解会及时补充,也请读者可以多多指教~
单例模式深入解析
本文详细探讨了单例模式的两种实现方式:饿汉式和懒汉式。饿汉式在类加载时即创建对象,确保线程安全;懒汉式则在首次使用时创建对象,需特别注意多线程环境下的线程安全问题。文章通过代码示例对比了不同方式下单例模式的表现,并介绍了如何通过双重锁机制解决懒汉式的线程安全问题。
237

被折叠的 条评论
为什么被折叠?



