最近加入了图灵学院java架构师的学习,着重学习高并发分布式核心架构技术学习,觉得很不错,分享架构大纲和总结的设计模式给大家,想要提升的同学可以在这些方面下点功夫,
课程资料
一:概念及理解
- 单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。
- 常见单例举例:ServletContext、ServletContextConfig ;在 Spring 框架应用中 ApplicationContext;数据库的连接池DBPool也都是单例形式。
- 优点:在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。避免对资源的多重占用。
- 缺点:没有接口,不能继承,要修改只能修改代码
- 单例共有特征:
构造方法私有化(保证对象只能自己来创建)
自己在内部创建自己的实例
提供一个全局的访问点(一般是static方法)是拿到单例的入口
二、单例分类及详解
1、饿汉式单例
在单例类首次加载时就立即初始化,并且创建单例对象。不管有没有使用,先创建了再说。
public class HungrySingleton {
//先静态、后动态
//先属性、后方法
//先上后下
private static final HungrySingleton hungrySingleton = new HungrySingleton();
//构造方法私有化
private HungrySingleton(){}
//static全局访问点
public static HungrySingleton getInstance(){
return hungrySingleton;
}
}
第二种饿汉式单例写法:利用static方法块,在类加载时就构建了唯一对象;
public class HungryStaticSingleton {
privat