java设计模式——单例模式(超详细)
单例设计模式分为二种:饿汉式和懒汉式
单例设计模式的优点:
由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的
产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可
以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方
式来解决
单例设计模式的设计思想:
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对
某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构
造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生
类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无
法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,
静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象
的变量也必须定义成静态的。
一.饿汉式
class one{}
1.私有化类的构造器
private one(){}
2.内部创建类对象(静态)
private static one ist = new one();
3.提供公共的静态方法,返回类的对象
public static one getinstance(){return ist;
}
二.懒汉式
1.私有化类的构造器
private two(){
}
2.声明当前类的对象,不初始化
private static two ist=null;
3.声明public,static的返回当前类对象的方法
public static two getin(){if(ist==null){ist=new two();}return ist;
}
应用场景:
1.网站的计数器
2.应用程序的日志应用
3.数据库连接池
4.读取配置文件中的类
5.application
6.pask manager
7.recycle bin
java设计模式——单例模式(超详细)相关推荐
- JAVA 正则表达式 (超详细,转)
转 JAVA 正则表达式 (超详细,转) 2015年03月25日 10:27:57 阅读数:1514 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍 ...
- Java 设计模式 - 单例模式
Java 设计模式 - 单例模式 作者: 霍英俊 [huo920@live.com] 文章目录 Java 设计模式 - 单例模式 单例设计模式介绍 单例设计模式八种方式 饿汉式 - 静态常量 饿汉式( ...
- Java设计模式——单例模式
单例模式 1.什么是单例模式. 2.单例设计的几种实现方式. 2.1.懒汉式 2.2.饿汉式 2.3.登记式 3.总结 4.建议 1.什么是单例模式. 确保某一个类只有一个实例,并且提供一个全局访问点 ...
- Java设计模式——单例模式的七种写法
单例模式(Singleton) 单例模式(Singleton)是一种常用的设计模式.在Java应用中,单例模式能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频 ...
- 【文末抽书】Java设计模式--单例模式
来源 :投稿 | 作者 : gyl-coder|原文:阅读原文 在介绍单例模式之前,我们先了解一下,什么是设计模式? 设计模式(Design Pattern):是一套被反复使用,多数人知晓的,经过分类 ...
- JAVA设计模式--单例模式
Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点. 核心知识点如下: (1) 将采用单例设计模式的类的 ...
- 我的Java设计模式-单例模式
就算不懂设计模式的兄弟姐妹们,想必也听说过单例模式,并且在项目中也会用上.但是,真正理解和熟悉单例模式的人有几个呢?接下来我们一起来学习设计模式中最简单的模式之一--单例模式 一.为什么叫单例模式? ...
- JAVA设计模式 - 单例模式
单例模式(Singleton)是软件设计中一种比较常见的 , 相对简单的设计模式 . 1 . 单例模式的定义 所谓单例 , 指的就是单示例 , 即某个类的实现对象有且仅能有一个 , 并提供对外调用的方 ...
- java设计模式—单例模式
(一)单例模式 java中一共有23种设计模式 : 是开发人员根据不同的代码场景总结出来的不同的实现方法, 归纳为23种代码的设计方法, 单例模式就是其中的一种. 单例模式 : 在整个系统中,一个类 ...
最新文章
- AI新方向:对抗攻击
- 第三组 通信一班 030 ISISv6
- psw和fr微型计算机,微型计算机技术及应用习题答案
- x265-common.h
- A new start!
- (23)ISE14.7 PLL输出时钟不能直接输出到普通IO(FPGA不积跬步101)
- Codeforces-Div312
- three.js 笑脸雨
- JAVA多线程--线程的同步安全
- laravel访问路由在nginx服务器上无法处理
- winhex的内存搜索法
- ie11浏览器For win7 x86 官方下载 V9600 官方版
- 基于逻辑回归的评分卡模型简单概述
- 大华海康NVR录像JAVA下载及WEB播放
- 800家电子元器件供应商及代理商
- SaaS和和PaaS的概念
- USB (十三)2022-04-02
- Spark系列十七:经典案列使用直连的方式,Kafka,SparkSteaming,Redis
- SQL Server T-SQL语言
- matlab中洛伦兹拟合,基于MATLAB洛伦兹线型非线性拟合算法实现
热门文章
- 软件保护工具VMProtect将许可系统集成到应用程序(7)——黑名单中的序列号
- 听见丨阿里“双十一”成交总额1682亿 京东双十一累计下单金额1271亿
- srvctl 在oracle下运行,oracle RAC工具srvctl
- SQL*Plus 系统变量之37 - PAU[SE]
- 【JavaFx实现系统托盘,去重AWT托盘乱码】
- Python爬虫实战,matplotlib模块,Python实现网易云音乐歌单数据可视化
- 认识爬虫:如何使用 requests 模块根据电影类型爬取豆瓣电影排名前20的信息与评分
- 昂达A69G主板U盘启动方法
- html5手机端响应式图片相册幻灯片插件特效
- matlab表示函数波形,matlab如何画冲激函数波形 matlab画冲激函数波形的方法