
单例模式是常见的设计模式之一: 目的是节省内存并限制实例数;这对Java GC回收机制很有帮助.
单例模型的三个好处:
1. 控制资源的使用写一个线程安全的单例模式,并通过线程同步控制资源的并发访问
2. 控制生成实例的数量以节省资源
3. 用作通信介质,以允许两个不相关的进程和线程进行通信而无需建立连接
单例模式分类: 饥饿模式(在加载类时将创建对象);

Slacker模式(仅在首次请求实例时创建实例);
注册模式
单例模式功能:
1. 单例类只有一个实例
2. 单例类必须创建自己的唯一实例
3. Singleton类必须将此实例本身提供给其他类

1. 惰性模式: 类加载时将不会初始化,并且在首次从外部请求实例时将创建该实例;并且实例将不会在第一次创建后创建;
特征: 在运行时获取对象的速度较慢,但在加载时速度更快,并且在应用程序的整个生命周期中仅占用一部分资源
//单例模式-懒汉式单例 public class LazySingleton { //私有静态对象,加载时候不做初始化 private static LazySingleton jjy=null; // 私有构造方法,避免外部创建实例 private LazySingleton(){} /** * 静态工厂方法,返回此类的唯一实例. * 当发现实例没有初始化的时候,才初始化. * @return LazySingleton */ synchronized public static LazySingleton getJjy(){ if(jjy==null){ jjy=new LazySingleton(); } return jjy; } }
2. 饿模式: 加载类时将初始化该类,并创建一个实例;
功能: 在运行时获取对象相对较快,但是在加载缓慢时,它将始终占用资源(程序打开和加载缓慢,但是运行速度较快-从用户体验的角度来看,建议用于饥饿的人)<
//单例模式-饿汉式单例

公共类EagerSingleton {
//私有静态对象,加载时不初始化
私有静态EagerSingleton jjy = new EagerSingleton();
//避免在外部创建实例的私有构造方法
私人EagerSingleton(){}
/ **

*静态工厂方法写一个线程安全的单例模式,该方法返回此类的唯一实例.
*
*
* /
同步的公共静态EagerSingleton getJjy(){
返回jjy;
}
}
使用场景: 连接池;网站柜台;
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-277000-1.html
豆浆精之类都是以不含防腐剂
允许同志结婚倒是不错的见解
弄僵后反而弊大于利
我想知道咱们南海造岛停止了么