• 设计模式和Java类加载器简单介绍


    设计模式

    • 创建型模式 省去new的过程
      • 单例设计模式 反射和序列化可以破坏单例模式
        • 饿汉式 :类加载就会导致该单例对象被创建
          • 静态变量方式
          • 静态代码块方式
          • 恶汉式:使用枚举,不考虑内存浪费下使用 。
        • 懒汉式:首次使用该单例对象才会被加载
      • 工厂模式
        • 简单工厂模式
        • 工厂方法模式
        • 抽象工厂模式
      • 原型模式
        • 浅克隆: 创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。
        • 深克隆: 创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。
      • 建造者模式
    • 构建型模式: 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。
      • 代理模式
        • 静态代理
        • 动态代理
      • 适配器模式
        • 类适配器
        • 对象适配器
      • 装饰器模式:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。
      • 外观模式:又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
      • 组合模式:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。在组合模式中,整个树形结构中的对象都属于同一种类型,带来的好处就是用户不需要辨别是树枝节点还是叶子节点,可以直接进行操作,给用户的使用带来极大的便利。
      • 享元模式:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。
    • 行为型模式
      • 模板方法模式
      • 策略模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

    Java类加载

    Java类加载体系

    BootStrapClassLoader

    1. 称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库
    2. 使用C/C + +语言实现,嵌套在JVM内部

    Extention ClassLoader

    1. 扩展的类加载器,加载目录-%JREHOME%Nliblext目录下的jar包和class文件。还可以加载-Djava.ext.dirs选项指定的目录。

    AppClassLoader

    1. 加载当前应用的classpath的所有类。

    每个加载器都有自己的加载目录

    双亲委派:一个java类加载进入JVM内存的过程

    1. 每个类加载器加载过的类都有一个缓存
    2. 向上委托查找,向下委托加载。

  • 相关阅读:
    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