单例模式

1|0单列模式

一、静态引用变量直接实力例化对象

随着类装载就完成实例化

微信图片_20230419145511

二、使用代码块,和一一样

微信图片_20230419145437

三、懒汉式加载

前两个是类装载就完成实例化,不是当需要调用的时候才实例化

微信图片_20230419145500

四、三的改进,加锁避免线程安全的问题,但是耗时,不高效

微信图片_20230419145457

五、用静态代码块缩小锁的范围,但是还是会出现线程的问题

微信图片_20230419145519

六、双重检查解决线程安全问题(volatie是用来解决JTI的指令重排问题,防止在没有初始化之前就返回instance)

微信图片_20230419145515

七、用的最多的内部类的方式

外部类加载一次,内部类也只加载一次,实例化也只进行一次。而且外部类加载时是不加载内部类的,只有在调用这个内部类的时候才会加载。

微信图片_20230419145504

八、effective java中提出的枚举写法是最好的单列模式

前面的单列模式都不能解决序列化问题,这个可以防止反序列化问题

微信图片_20230419145507


__EOF__

本文作者liuliu的小家
本文链接https://www.cnblogs.com/liu-jin/p/17398120.html
关于博主:hello~好久不见,喜欢的话点个赞吧
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Bepowerful  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示