-
设计模式和Java类加载器简单介绍
- 创建型模式 省去new的过程
- 单例设计模式 反射和序列化可以破坏单例模式
- 饿汉式 :类加载就会导致该单例对象被创建
- 静态变量方式
- 静态代码块方式
- 恶汉式:使用枚举,不考虑内存浪费下使用 。
- 懒汉式:首次使用该单例对象才会被加载
- 工厂模式
- 原型模式
- 浅克隆: 创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。
- 深克隆: 创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。
- 建造者模式
- 构建型模式: 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。
- 代理模式
- 适配器模式
- 装饰器模式:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。
- 外观模式:又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
- 组合模式:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。在组合模式中,整个树形结构中的对象都属于同一种类型,带来的好处就是用户不需要辨别是树枝节点还是叶子节点,可以直接进行操作,给用户的使用带来极大的便利。
- 享元模式:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。
- 行为型模式
- 模板方法模式
- 策略模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
Java类加载体系
BootStrapClassLoader
- 称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库
- 使用C/C + +语言实现,嵌套在JVM内部
Extention ClassLoader
- 扩展的类加载器,加载目录-%JREHOME%Nliblext目录下的jar包和class文件。还可以加载-Djava.ext.dirs选项指定的目录。
AppClassLoader
- 加载当前应用的classpath的所有类。
每个加载器都有自己的加载目录
双亲委派:一个java类加载进入JVM内存的过程
- 每个类加载器加载过的类都有一个缓存
- 向上委托查找,向下委托加载。
-
相关阅读:
Vue真实技术面试题解析【兄弟组件、vue-router、增量部署】
生存资料校准曲线calibration curve的绘制
模板继承、模板中加载静态文件
代码随想录 Day10 栈与队列 LeetCode T239 滑动窗口的最大值 T347 前K个高频元素
【CSS】5分钟带你彻底搞懂 W3C & IE 盒模型
POM设计模式思路,详解POM:概述与介绍,POM思路梳理+代码示例(全)
PVL EDI 项目案例
PyQt5中的layout布局
MNE系列教程2——MNE中的Raw及其基本用法
1.01_pdf转word项目_项目需求分析和技术架构
-
原文地址:https://blog.csdn.net/qq_61672548/article/details/126090305