单例模式---(1)
来源:互联网 发布:现在还可以网络购彩票 编辑:程序博客网 时间:2024/06/05 00:16
先来介绍一下设计模式:它是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。设计模式更多的是停留在思想层面,指导我们提高编码的效率和质量。
使用设计是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性。
单例模式:
在我们的开发过程中,有些对象我们只需要一个,例如:配置文件,工具类,线程池,缓存,日志对象等。
如果创建多个实例,就会导致很多问题,比如占用过多资源,获取内容不一致的问题,为了保证整个应用中的实例有且只有一个,便要用到单例模式。
单例模式有两种实现方式,懒汉模式和饿汉模式
饿汉模式:
<span style="font-size:18px;">public class Singleton{//1.将构造器私有化,不允许外部直接创建对象private Singleton(){}//2.创建类的唯一实例,为保证类的封装特性,要将其私有化private static Singleton instance = new Singleton();//3.给外部提供一个静态方法,可以获取该唯一实例public static Singleton getInstance(){return instance;}}</span>
通过这种方式,可以保证外部获得的实例对象为同一个。
之所以称其为饿汉模式,是因为这个唯一的实例对象实在类加载的时候就被创建了,也就是着急吃饭,即为饿汉模式
懒汉模式:
<strong><span style="font-size:18px;">public class Singleton2{//1.将构造器私有化,不允许外部直接创建对象private Singleton2(){}//2.声明类的唯一实例,为保证类的封装特性,要将其私有化,与饿汉模式不同的是,// 此处只是声明对象,并未将其实例化private static Singleton2 instance;//3.给外部提供一个静态方法,可以获取该唯一实例public static Singleton2 getInstance(){if(instance==null){instance = new Singleton2();}return instance;}}</span></strong>
这种方式通过判断实例是否为空来决定是否需要创建实例,当第一次调用该方法时会创建实例,之后便只需直接应用第一次创建的实例即可。
饿汉模式和懒汉模式的区别:
饿汉模式中实在类加载时就创建实例对象,所以加载阶段比较慢,运行阶段之间使用已经创建好的实例,所以会比较快。与之相反
懒汉模式是在运行阶段才创建类的唯一实例,所以运行阶段比较慢,而类加载阶段比较快
另一个重要的区别是,饿汉模式是线程安全的,而懒汉模式是线程不安全的。
1 0
- (1)单例模式
- (1)单例模式
- 单例模式---(1)
- (1)单例模式
- (1)单例模式
- 设计模式(1)-单例模式
- 设计模式(1):单例模式
- 设计模式(1):单例模式
- 设计模式(1):单例模式
- 单例模式(设计模式1)
- 设计模式(1)单例模式
- 设计模式(1)单例模式
- 设计模式(1)-单例模式
- 单件模式(单例模式)
- 单例模式1
- 单例模式1
- (1) 单例模式
- 单例模式1
- Spring Boot学习笔记 - NoClassDefFoundError
- 自定义view简单流程
- 机器学习的模型评估
- GCC 编译过程
- Linux例行性工作(at/cron)
- 单例模式---(1)
- 1166: 【求[X,Y]内被除3余1并且被除5余3的整数的和】
- 程序、进程、线程的区别与联系
- 二进制数转八进制数(参考XJY)
- 世界树
- 分布式版本控制系统 Git 简介与应用
- springMVC4(4)json与对象互转实例解析请求响应数据转换器
- eclipse中FreeMarker插件的在线安装
- 二进制转十六进制(参考XYJ)