JAVA设计模式(单例模式)
来源:互联网 发布:金山软件成都分公司 编辑:程序博客网 时间:2024/06/04 18:49
什么是单例
Singleton(单例)是设计模式中创建型模式的一种,为确保一个类
最多只有一个实例,并提供一个访问它的全局访问点。
单例特点
单例类确保自己只有一个实例(构造函数私有:不被外部实例化,也不被继承)。
单例模式必须自己创建自己的实例。
单例模式必须为其他对象提供唯一的实例。
单例应用
任务管理器,回收站 ,线程池,配置信息类,管理类,门面类,
代理类通常被设计为单例类。如果程序有多个类加载器又同时使
用单例模式就要保证单例的唯一性了。
实现方式
饿汉模式
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。
懒汉模式
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。
懒汉模式 (双重锁)
双重锁模式,是饱汉模式的优化,进行双重判断,当已经创建过实例对象后就无需加锁,提高效率。
总结一下,两种方案的构造函数和公用方法都是静态的(static),实例和公用方法又都是私有的(private)。但是饿汉式每次调用的时候不用做创建,直接返回已经创建好的实例。这样虽然节省了时间,但是却占用了空间,实例本身为static的,会一直在内存中带着。懒汉式则是判断,在用的时候才加载,会影响程序的速度。最关键的是,在并发的情况下,懒汉式是不安全的。如果两个线程,我们称它们为线程1和线程2,在同一时间调用getInstance()方法,如果线程1先进入if块,然后线程2进行控制,那么就会有两个实例被创建。
以上就是单例模式常用的几个方法,感谢大家的阅读,我会更加努力给大家带来更精彩的内容。
(责任小编:阿辉)
阅读全文
1 0
- java设计模式(单例模式)
- JAVA设计模式(单例模式)
- 设计模式----单例模式(java)
- (设计模式)单例模式-java
- Java设计模式之单例模式(singleton模式)
- java设计模式之单例模式(Singleton模式)
- Java设计模式之单例模式(singleton模式)
- java 设计模式,单例设计模式
- java设计模式-单例设计模式
- java设计模式-单例设计模式
- Java设计模式 单例设计模式
- Java设计模式------单例设计模式
- java设计模式----->单例设计模式
- java设计模式:单例设计模式
- java设计模式-----单例设计模式
- Java设计模式----单例设计模式
- java设计模式-单例设计模式
- java设计模式:单例设计模式
- Android Date、long、String相互转换的工具类
- Spring事务不生效问题汇总
- mysql必知必会学习笔记
- ORACLE数据库SQL语句的执行过程
- PAT--1032. Sharing
- JAVA设计模式(单例模式)
- ThreadLocal线程本地变量
- python实现房价预测,采用回归和随机梯度下降法
- socket之TCP多线程客户服务器编程
- Joseph
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name
- 集成模型python实现,随机森林,梯度提升决策树
- hadoop配置及测试中错误归纳
- 浅谈设计模式--单例模式(Singleton Pattern)