以下属于单例模式的优点的是_单例模式的优缺点和使用场景
能有一个文件系统。
10. HttpApplication 也是单位例的典型应用。熟悉ASP.Net(IIS)的整个请求生命周期的人应该知道HttpApplication也是单例模式,所有的HttpModule都共享一个HttpApplication实例.
实现单利模式的原则和过程:
1.单例模式:确保一个类只有一个实例,自行实例化并向系统提供这个实例
2.单例模式分类:饿单例模式(类加载时实例化一个对象给自己的引用),懒单例模式(调用取得实例的方法如getInstance时才会实例化对象)(java中饿单例模式性能优于懒单例模式,c++中一般使用懒单例模式)
3.单例模式要素:
a.私有构造方法
b.私有静态引用指向自己实例
c.以自己实例为返回值的公有静态方法
1.饿汉式:单例实例在类装载时就构建,急切初始化。(预先加载法)
/**
* 饿汉式(推荐)
*
*/
public class Test {
private Test() {
}
public static Test instance = new Test();
public Test getInstance() {
return instance;
}
}
优点
1.线程安全
2.在类加载的同时已经创建好一个静态对象,调用时反应速度快
缺点
资源效率不高,可能getInstance()永远不会执行到,但执行该类的其他静态方法或者加载了该类(class.forName),那么这个实例仍然初始化
2.懒汉式:单例实例在第一次被使用时构建,延迟初始化。
class Test {
private Test() {
}
public static Test instance = null;
public static Test getInstance() {
if (instance == null) {
//多个线程判断instance都为null时,在执行new操作时多线程会出现重复情况
instance = new Singleton2();
}
return instance;
}
}
优点:
避免了饿汉式的那种在没有用到的情况下创建事例,资源利用率高,不执行getInstance()就不会被实例,可以执行该类的其他静态方法。
缺点:
懒汉式在单个线程中没有问题,但多个线程同事访问的时候就可能同事创建多个实例,而且这多个实例不是同一个对象,虽然后面创建的实例会覆盖先创建的实例,但是还是会存在拿到不同对象的情况。解决这个问题的办法就是加锁synchonized,第一次加载时不够快,多线程使用不必要的同步开销大。
3.双重检测
class Test {
private Test() {
}
public static Test instance = null;
public static Test getInstance() {
if (instance == null) {
synchronized (Test.class) {
if (instance == null) {
instance = new Test();
以下属于单例模式的优点的是_单例模式的优缺点和使用场景相关推荐
- 以下属于单例模式的优点的是_三、单例模式详解
4.单例模式详解 4.1.课程目标 1.掌握单例模式的应用场景. 2.掌握IDEA环境下的多线程调试方式. 3.掌握保证线程安全的单例模式策略. 4.掌握反射暴力攻击单例解决方案及原理分析. 5.序列 ...
- 以下哪个选项不是单例模式的优点_深度解密Python单例模式
相关代码已经上传至Github:Python_Development_Interview,大家可以收藏专题-Python的设计模式:解密+实战,之后会持续更新相关的设计模式. 1. 认识单例模式 认识 ...
- java_设计模式_单例模式_
目录 引言 一.概述 1.概念: 2.单例模式有 3 个特点: 3.单例模式的优点和缺点: 单例模式的优点: 单例模式的缺点: 单例模式的应用场景: 单例模式的结构: 二.单例模式的实现 1.饿汉式单 ...
- python单例类命名_单例模式(java/python/c++)
序 最近接触到新项目,后端基于java开发.对于有c++/python开发经验,无java经验的小梅同学,开始了漫漫学习之旅,第一篇学习记录,从最简单的单例模式开始吧. 众所周知,单例模式的最明显的几 ...
- java bean 单例模式_单例模式 - Beans_bag - 博客园
1.单例模式的简介 定义 保证每个类仅有一个实例,并给外部提供一个访问它的全局访问点. 思路 如果一个类能够被创建多个实例,那么,这个类的构造方法肯定是公开的,外部通过此类的构造方法可以创建多个类的实 ...
- 静态内部类实现单例_单例模式详解
概述 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中,使用单例模式的类只有一个对象实例. 单例应用场景 Windows系统的任务管理器. ...
- java单例模式_Java描述设计模式(01):单例模式
本文源码:GitHub·点这里 || GitEE·点这里 一.单例模式 1.概念图解 单例设计模式定义:确保这个类只有一个实例,并且自动的实例化向系统提供这个对象. 2.样例代码 package Si ...
- 单例模式的优缺点和使用场景
单例模式的优缺点和使用场景 文章转自:http://www.tools138.com/create/article/20150929/020009847.html 单例模式的优缺点和使用场景 - 晓明 ...
- 以下哪个选项不是单例模式的优点_设计模式--单例
概述 单例模式(SingletonPattern),保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式有 3 个特点: 单例类只有一个实例对象: 该单例对象必须由单例类自行创建: 单例类 ...
最新文章
- Linux下redis的安装(适用centos)
- 《编写有效用例》读书笔记1
- 习题8-5 使用函数实现字符串部分复制 (20 分)
- 原创 | IJCAI 2020灭霸式拒稿,AI审稿是否更公平?
- 9.9学python靠谱吗-9成以上老师都不会告诉你的,关于编程的秘密,看完以后恍然大悟...
- MySQL 为什么我的MySQL会“抖一下“?
- android如何添加gif,Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1)...
- python 对象序列化 pickling_[Python]对dat文件的操作:序列化对象
- iPhone开发进阶(1) --- 深入理解iPhone OS/SDK与Objective-C 2.0
- redis session java获取attribute_面试题:给我说说你能想到几种分布式session实现?...
- IP 数据报首部分析
- nodejs轻量服务器后端
- python如何让图片镜像翻转_如何用 Python 增量备份 Roam Research 笔记图片?
- Python获取文件后缀名
- max函数|C++返回数组中的最大值——max_element函数
- 计算机网络(自顶向下方法)学习笔记
- Linux下破解UE
- 基于nrf52832 mpu6050应用实例(7)
- 【期刊推荐】JCR2区数学算法优化类重点SCI期刊征稿中~
- 音乐计算机在哪里买,[计算器自带音乐在哪里]语音计算器上的音乐有什
热门文章
- 一行代码指定python下载源为清华源【只需修改一次】
- markdown与latex:向量形式给字母加粗 \pmb{}
- golang 安装 guru vscode 安装失败
- jQuery_pager.js分页
- Laravel 5.x 启动过程分析 [转]
- 数据结构之线性表之顺序存储结构(3)
- poj 2318 TOYS
- Windows下配置Apache服务器
- Split的使用(C#)
- [转载] python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解