单例模式
来源:互联网 发布:mac物理地址不匹配 编辑:程序博客网 时间:2024/06/10 02:03
一个类只有一个对象
应用:游戏开发中
创建方法:
1.饿汉式:
(先初始化对象,在进入内存后,初始化对象被创建,实际开发中常用,安全)
(1)构造对象私有化:
private 类名(){}
(2)在类中创建一个对象
private static 类名 s=new 类名();
(3)提供一个方法获取对象(即给其他程序一个接口获取对象)
public static 类名 getInstance() {
return s;
}
2.懒汉式
(方法被调用时才会创建初始化对象,也叫做:对象的延时加载;
这种方式存在危险:多人调用时,CPU资源分配
解决办法:(1)synchronized修饰方法--->效率变低
(2)双重判断(多线程技术,判断读锁次数降低)--->最终方案)
private static 类名 s=null;
private 类名(){}
public static 类名 getInstance() {
if(s==null){
synchronized(类名.class){
if(s==null){
s=new 类名();
}
}
}
return s;
}
明显的:饿汉式要比懒汉式简单,并且不会太耗内存。
0 0
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 单例模式(单子模式)
- 设计模式-单例模式
- [设计模式] 单例模式
- Navicat 2003-can't connect to MYSQL server on 'localhost'(10061)
- 输入字符串的格式不正确。
- 《JavaScript高级语言设计》(第三版)学习笔记(5)
- HTML5复习 (1)
- 当Navicat for Mysql出现 1045 -Access denied for user'root'@'ipAddress'(using password :yes)
- 单例模式
- 解决腾讯云服务器启动tomcat巨慢导致浏览器无法加载的方案
- File.io读取文件(四)
- js 微信端 信息一键导入 通讯录
- 【Java Utility】Jsoup网页爬虫工具--从URL加载Document【五】
- 观察者模式的两种实现和比较
- 分享下最近写的开源电子书《我的职业是前端工程师》
- mysql 关联条件 中使用 like
- 当前目录下maven生成jar并带lib文件夹啊