当前位置: 首页 > news >正文

2.JVM-通俗易懂理解类加载过程

一、类加载基本过程

------------记录----------------

二、JVM层面理解类加载

Launcher()类里面定义了 先找扩展类加载器然后在使用自定义加载器,引导类加载器是通过JNI调用C++代码

下图是扩展类加载器双检索实现(单例模式实现)

------------记录----------------
  • 类加载器之间的关系父子关系 parent ,也不是传统意义上的面向对象继承,而是顺序执行,Launcher类中定义的.
  • 扩展类加载器是单例模式
  • 如何保证安全防篡改:“加载器+包名+类名”

三、双亲委派

双亲委派核心代码,一共五行,主要思想就是递归

  • 什么类才是唯一的类:“包名+类名”

例如:自己写一个String名,main方法执行不了,

------------记录----------------
  • 为什么使用双亲委派?
  • 如何打破双亲委派(如何设计一个自己的实现类)?

主要是重写loadClass方法,改变递归调用

public class CustomClassLoader extends ClassLoader {

    @Override
    public Class<?> loadClass(String name) throws ClassNotFoundException {
        // 1. 针对特定类,自己加载(跳过父类)
        if (name.startsWith("com.example.myapp")) {
            return findClass(name);
        }
        // 2. 其他类仍走默认的双亲委派
        return super.loadClass(name);
    }

    @Override
    protected Class<?> findClass(String name) {
        // 从自定义路径加载类字节码
        byte[] classData = loadClassData(name);
        return defineClass(name, classData, 0, classData.length);
    }

    private byte[] loadClassData(String className) {
        // 实现类文件读取逻辑(如从特定目录、网络等)
        // ...
    }
}

四、类加载器的应用

  • Tomcat中如何实现不同服务之间隔离(使用类加载器实现)

Tomcat中公共组件的使用了双亲委派,再往上就是传统的JDK类加载器,不同服务有自己服务的类型加载器

Tomcat公共服务共同使用一个类加载器,不同服务到这一层就打破双亲委派实现隔离

其他

如果帮助到了您记得点个赞谢谢!

相关文章:

  • Java vs Go:SaaS 系统架构选型解析与最佳实践
  • 【FreeRTOS】FreeRTOS操作系统在嵌入式单片机上裸机移植
  • CSS 的 inherit、initial、revert 和 unset区别
  • mysql安装与使用
  • 深入理解 ALSA 声卡驱动:从理论到实践,解决嵌入式 Linux 声卡无声问题
  • 辉芒单片机FLASH->ACR导致的问题
  • Springboot+Netty+WebSocket搭建简单的消息通知
  • 大一新生备战蓝桥杯c/c++B组——2024年省赛真题解题+心得分享
  • 数仓建模和标签体系之间存在着密切的依赖关系
  • 27_Java2DRenderer结合freemarker动态生成图片
  • 可视化图解算法:合并k个已排序(升序)的链表
  • LeetCode——560. 和为 K 的子数组
  • 目前人工智能的发展,判断10年、20年后的人工智能发展的主要方向,或者带动的主要产业
  • 【openwebui 搭建本地知识库(RAG搭建本地知识库)】
  • 软件测试之测试用例
  • Microsoft Edge “无法更新” 解决办法
  • 学习笔记之车票搜索为什么用Redis而不是ES?
  • 32单片机——LED
  • 通过 Python 爬虫提高股票选股胜率
  • 【教学类-43-26】20240312 数独4宫格的所有可能(图片版 576套样式,空1格-空8格,每套65534张*576小图=3千万张小图)
  • 金价大跌!足金饰品每克一夜便宜14元,涨势是否已终结?
  • 长沙查处疑似非法代孕:有人企图跳窗,有女子被麻醉躺手术台
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 第12届警博会在即:一批便民利企装备亮相,规模创历史新高
  • 著名文物鉴赏家吴荣光逝世,享年78岁
  • 广西百色通报:极端强对流天气致墙体倒塌,3人遇难7人受伤