单例模式

原创 2017年08月14日 19:36:11

单例模式其实是一个很简单的设计模式,其作用就是为了让某一个类的全局实例只有一个。
我认为这个模式在oop上思想的增加是很少的。但这个模式却是对多线程安全认知的一个很好的例子。

这是我代码的demo单例github demo

其实我代码中的注释也写的很明白了。
能保证线程安全的单例大概有三种写法。

第一种: 双重检查就是SingletonDobuleCheck这个类的写法,使用了java内置的加锁机制,synchronized关键字实现,其缺点就是低于java5的版本不能兼容,不过这个也可以忽视了。

第二种 第二种就是懒加载,依赖jvm的机制保证创建时的线程安全,但是会在其类加载过程时就会对其进行实例化,如果这个类持有很多资源,会造成资源的浪费。

第三种 第三种就是使用静态内部类,其保证线程安全的原理跟第二种一样,但其使用了静态内部类就避免了第二种的缺点,这也是我所推荐的实现方式,代码还简短。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

单例模式

  • 2015年06月24日 10:08
  • 21KB
  • 下载

Android线程池+单例模式+webService

  • 2017年11月01日 10:36
  • 50.14MB
  • 下载

Java 单例模式几种实现的差别

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 思路是通过将该类的构造方法设为private,那么在其他类中不能直接实例化该类。那么为了得到该类的实例,需要有publi...

单例模式

  • 2013年11月14日 14:44
  • 24KB
  • 下载

单例模式详解

  • 2014年06月06日 00:14
  • 25KB
  • 下载

《多线程编程》学习之十:定时器Timer的使用,线程安全的单例模式

一、定时器Timer的使用          定时器 Timer类主要的作用是设置计划任务,它在内部使用多线程的方式进行处理;而抽象的TimerTask类负责封装任务,它实现了Runnable接口。 ...

单例模式学习

  • 2013年01月06日 15:20
  • 3KB
  • 下载

耦合和单例模式的理解

  • 2014年08月18日 09:28
  • 21KB
  • 下载

java单例模式五种实现方式

应用场景由于单例模式只生成一个实例, 减少了系统性能开销(如: 当一个对象的产生需要比较多的资源时, 如读取配置, 产生其他依赖对象, 则可以通过在应用启动时直接产生一个单例对象, 然后永久驻留内存的...
  • JQ_AK47
  • JQ_AK47
  • 2017年02月06日 17:03
  • 2184

java单例模式

  • 2013年06月07日 14:58
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式
举报原因:
原因补充:

(最多只允许输入30个字)