Week 3 作业 01

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

1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。

饿汉式

  • 优点:在类装载的时候就完成实例化。避免了线程同步问题。

  • 缺点:在类装载的时候就完成实例化,没有达到Lazy Loading的效果。如果从始至终从未使用过这个实例,则会造成内存的浪费

  • 这种方式和上面的方式其实类似,只不过将类实例化的过程放在了静态代码块中,也是在类装载的时候,就执行静态代码块中的代码,初始化类的实例。



懒汉式

  • Double-Check概念 是多线程开发中常使用到的,如代码中所示,我们进行了两次if (singleton == null)检查,这样就可以保证线程安全了。

  • 这样,实例化代码只用执行一-次,后面再次访问时,判断if (singleton == null),直接return实例化对象,也避免的反复进行方法同步.

  • 线程安全,延迟加载,效率较高

  • 在实际开发中,推荐使用这种方式实现单例设计模式

  • 代码实现





用户头像

Croesus

关注

还未添加个人签名 2019.01.05 加入

还未添加个人简介

评论

发布
暂无评论
Week 3 作业 01