java经典设计模式之单例模式

1、引言

        单例模式是开发中用的最多的模式,随处可见。此处就不在多讲。单例模式有饿汉式,懒汉式。懒汉式后来又衍生出双重校验锁。实现单例模式需要三步:

1)、构造方法私有,保证无法从外部通过 new 的方式创建对象。

2)、对外提供获取该类实例的静态方法

3)、类的内部创建该类的对象,通过第 2 步的静态方法返回


2、正式学习

有些情况下必须使用单例模式,如果不使就会产生如下情况:

2.1、饿汉式

2.2、懒汉式

        懒汉式线程不安全,当同时一个线程进来还没有执行tools = new Tools()时,另一个线程也进来,则会实例化两个对象,导致线程不安全。可以加上synchroized,缺点就是效率有些低。

效率低下
效率可以,但同样不安全
双重校验锁

        双重校验锁不仅解决了效率问题,同时还保证了线程安全

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容