Week 3 作业 01
1. 请在草稿纸上手写一个单例模式的实现代码,拍照提交作业。
饿汉式
优点:在类装载的时候就完成实例化。避免了线程同步问题。
缺点:在类装载的时候就完成实例化,没有达到
Lazy Loading
的效果。如果从始至终从未使用过这个实例,则会造成内存的浪费这种方式和上面的方式其实类似,只不过将类实例化的过程放在了静态代码块中,也是在类装载的时候,就执行静态代码块中的代码,初始化类的实例。
懒汉式
Double-Check
概念 是多线程开发中常使用到的,如代码中所示,我们进行了两次if (singleton == null)
检查,这样就可以保证线程安全了。这样,实例化代码只用执行一-次,后面再次访问时,判断
if (singleton == null)
,直接return
实例化对象,也避免的反复进行方法同步.线程安全,延迟加载,效率较高
在实际开发中,推荐使用这种方式实现单例设计模式
代码实现
评论