写点什么

架构师作业 - 第三周 - 单例

用户头像
袭望
关注
发布于: 2020 年 10 月 04 日

书写了两个版本,上面的是饿汉式,直接在启动时初始化出 instance,可以保证全局使用的性能是一致的,但是如果是不常用的单例类这样创建出来属于浪费资源;

下面的是饿汉式,添加了 volatile 关键字(写的时候拼错了)标识多线程可见,同时在 getInstance 里加了 Synchronized 同步锁和双重判空来校验单例创建的正确性。

之前看过资料,单例可以通过反射来进行破坏,需要在构造类里做一些抛异常等特殊处理,手写时忘了是不是直接判断==null 之后 throw exception 即可,所以没有写。

用户头像

袭望

关注

还未添加个人签名 2018.08.13 加入

还未添加个人简介

评论

发布
暂无评论
架构师作业-第三周-单例