单例模式 恶汉懒汉式
只创建一个实例 自己创建自己的实例,全系统共享这个实例
一 .懒汉式 等用到的时候才创建实例 特点 延迟加载,我们需要考虑它的线程安全问题,因此可以加锁,双重验证锁既保证了性能有保证了线程安全;静态内部类的方法则是在使用的时候才进行加载。
二. 恶汉式 在第一次加载时就先创建好实例
特点是 线程安全的,用于占用内存较小的时候,刚开始就需要这个实例的时候。
public class singlePattern {
// 懒汉式
private singlePattern(){}
private static singlePattern si=null;
// 双重锁
public static final singlePattern getInstance(){
if(si==null){
synchronized (singlePattern.class) {
if(si==null){
si=new singlePattern();
}
}
}
return si;
}
// 静态内部类
private static class getSTA{
static singlePattern INSTANCE=new singlePattern();
}
public static final singlePattern getInstance2(){
return getSTA.INSTANCE;
}
/*
* 饿汉式
*
*/
private static final singlePattern si2= new singlePattern();
public static final singlePattern getInstance3(){
return si2;
}
}
单例模式 恶汉懒汉式相关推荐
- java+单例+恶汉_Java设计模式之单例模式(恶汉式和懒汉式)
/** 单例模式:* 饿汉式:类一加载就创建对象* 懒汉式:用的时候,才去创建对象* 面试题:单例模式的思想是什么?写一个代码体现(我们最好写懒汉式的单例模式给面 /* * 单例模式: * ...
- 单例模式之懒汉式单例模式
单例模式之懒汉式单例模式 本文将探讨三种懒汉式单例模式,会从代码的运行效率,线程安全等方面探讨. 在上一篇文章中,刚刚介绍饿汉式单例模式,在本文开头先简单的说一下懒汉式单例模式和饿汉式单例模式的区别: ...
- 经典案例:单例模式之懒汉式和饿汉式
单例模式之懒汉式和饿汉式 文章目录 单例模式之懒汉式和饿汉式 一.单例模式是什么? 二.几种单例模式 1.懒汉模式 2.饿汉模式 三.懒汉模式和饿汉模式的区别 一.单例模式是什么? 保证整个系统中一个 ...
- java单例模式之懒汉式与饿汉式
首先我们介绍一下单例模式 单例类是只有一个实例对象: 该单例对象必须由单例类自行创建: 单例类对外提供一个访问该单例的全局访问点. 单例模式的优点 单例模式可以保证内存里只有一个实例,减少了内存的开销 ...
- 单例模式【懒汉式+饿汉式+枚举】
软件设计模式(Software Design Pattern) 又称设计模式,是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.它描述了在软件设计过程中的一些不断重复发生的问题,以及 ...
- php 恶汉单例,单例模式中懒汉式和恶汉式
1.单例模式: 一.懒汉式: //懒汉式单例类.延迟加载,在第一次调用的时候实例化自己 public class SingleTon{ private static SingleTon instanc ...
- 单例模式(懒汉式和饿汉式)及如何实现线程安全
单例模式有两种:懒汉式和饿汉式. 1 #include <iostream> 2 3 using namespace std; 4 5 6 // 保证在整个程序运行期间,最多只能有一个对象 ...
- 单例模式 恶汉懒汉比较
单例模式 创建一个实例,向系统提供这个实例.分为懒汉式 恶汉式. 一.懒汉式 是调用的时候再用 // Public class Single{ private single(){} Private ...
- JAVA单例模式:懒汉式,饿汉式
今天复习了一下java的单例模式,写了懒汉式和饿汉式的实现例子.代码如下: 1.懒汉式单例 package com.lf.shejimoshi;/*** @classDesc: 类描述:(懒汉式单例测 ...
最新文章
- 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第2章-带时延位置的离散多智能体系统的一致性
- 自定义Android标题栏TitleBar布局
- laravel改代码没变化_推荐10个优质的Laravel扩展
- C/C++之大端模式和小端模式
- Spring Aop——给Advice传递参数
- 第三章 随机变量的数字特征
- 【大总结2】大学两年,写了这篇几十万字的干货总结
- 进行api的HTML5inlinehook操作(飞秋官方下载)
- 基于JBox2d物理引擎和canvas的游戏开发实例
- lampp mysql最大连接数_mysql连接数问题备份
- oracle横向统计个数,Oracle横向求最大值
- Scrum立会报告+燃尽图(十月二十二日总第十三次)
- php安装包进行安装吗,php的一键安装包有哪些php环境搭建
- Thinking in Java 14.7 动态代理
- c语言经纬度和大地坐标转换,经纬度与我国54、80大地坐标转换的小工具
- 通过创建script标签来引入外部js
- 【Python】Matplotlib 可视化进阶之PCA主成分分布图
- day11-函数作业
- linux(debian)下的vim diff时 报错E97解决,文件夹对比meld,beyond compare
- 前端利器CodePen,了解一下吧
热门文章
- 深入Java微服务之网关系列1:什么是网关
- 数据结构(六):图的概念、存储方式、基本操作、最小生成树、最短路径、有向无环图、关键路径 | Prim、Kruskal算法 | BFS、Dijkstra、Floyd算法 | 拓扑排序 | 求关键路径
- Linux驱动bootloader之UEFI(Unified extensible firmware interface)系统一——初识UEFI
- SD卡格式化怎么恢复里面的照片?
- Android 时间转换 今天 昨天 前天 的样式
- N级台阶,一次上1级或2级或3级或M级,总共有多少种走法
- 什么是固定资产残值,如何确定?
- React实现excel导入功能(xlsx包)
- 集合之Collection家族的 List接口+LinkedList+Vector+Stack及Set接口+HashSet+LinkedHashSet+TreeSet
- 推荐系统常用评价指标:NDCG、Recall、Precision、Hit Rate