介绍:单例模式的两种方式,一种是饿汉式,就是在类初始化的时候,创建对象,这种方式是线程安全的,在程序运行期间就这一个对象。
另一种是懒汉式,懒汉式是在第一次使用时才创建对象,但是如果在多线程环境中要考虑线程安全问题。
好~直接上代码截图
1、饿汉式
输出结果:符合单例模式
2、懒汉式
输出结果:多次实例化对象,存在多线程安全问题
3、解决懒汉式存在多线程安全问题——双重锁方法(在static方法上添加synchronized或者synchronized(类名.class))
输出:符合单例模式
注意:如果使用synchronized(类名.class)这种方法时,直接上代码截图
输出结果:多次实例化对象,不符合单例模式
**这时需要多加一步操作
输出结果:符合单例模式
总结:本人之前只是学了单例模式的书面知识,并没有真正在实践中遇到过,这次在看别人写的程序的时候遇到了这种情况,决定好好研究一下,毕竟是初次接触,因此内容有限敬请读者谅解,后续若有更多个人见解会及时补充,也请读者可以多多指教~