JVM——类加载器、类加载器的分类

ops/2024/11/17 4:35:52/

类加载器是java虚拟机提供给应用程序去 实现获取类和接口字节码数据 的技术

类加载器的分类:

  • 一类是 Java代码中实现的
  • 一类是 Java虚拟机底层源代码实现的

通常可以细分为三大类:jdk8版本中的

  • java代码中的
    • 扩展类加载器:Extension 允许扩展Java中比较通常的类 (比较通用但是不特别重要)
    • 应用程序类加载器Application 加载应用所使用的类,还有一些第三方中jar包中的类
  • java虚拟机中的
    • 启动类加载器Bootstrap:加载java中最核心的类 比如String类

可以通过Arthas中的类加载器查看:

//使用下面的命令
$ classloader 

启动加载器

(Bootstrap ClassLoader)是由Hotspot虚拟机提供的、使用C++编写的类加载器。

默认加载Java安装目录/jre/lib下的类文件,比如rt.jar,tools.jar,resources.jar等。

  • 通过启动类加载器去加载用户的jar包:
    • 放入jre/lib下去进行扩展:
      • 不推荐,可能会出现即使放进去由于文件名不匹配的问题也不会正常的被加载。
    • 使用参数进行扩展:
      • 推荐,使用-Xbootclasspath/a:jar包目录/jar包名进行扩展

扩展类加载器+应用程序类加载器:

  • 扩展类加载器和应用程序加载器都是JDK中提供的,使用Java编写的类加载器
  • 他们的源码都位于sun.misc.Launcher中,是一个静态内部类。继承字URLClassLoader。具备通过目录或者指定jar包将字节码文件加载到内存中。

扩展类加载器:

  • 默认加载Java安装目录/jre/lib/ext下的类文件

通过扩展类加载器区加载用户jar包:

  • 放入/jre/lib/ext下进行扩展
  • 使用参数进行扩展
    • 推荐,使用-Djava.ext.dirs=jar包目录 进行扩展,这这种凡是会覆盖掉原始目录,可以用;(windows):(macos/linux)追加上原始目录。

双亲委派机制:

由于Java虚拟机中有多个类加载器,双亲委派机制的核心是解决一个类到底由谁加载的问题。

双亲委派机制的详细内容我会在下一篇文章介绍


http://www.ppmy.cn/ops/134333.html

相关文章

VMware高危漏洞VMSA-2024-0019修复堆溢出和权限提升漏洞

一、概述 VMware vCenter Server 高危漏洞(CVE-2024-38812、CVE-2024-38813)再次受到攻击,需要升级补丁,详情查看之前文章紧急通告VMware vCenter高危漏洞CVE-2024-38812和CVE-2024-38813修复方案 再次更新了漏洞 二、漏洞影像描…

三分频电路设计

文章目录 偶数分频二分频更大的2N偶数 奇数分频三分频 偶数分频 通常情况下,偶数倍分频器,可以借助计数器实现。 二分频 最简单的,二分频时,直接把输入时钟加到D触发器上,输出端Q取反后,接回输入D端&…

【Qt聊天室客户端】消息功能--发布程序

1. 获取文件内容 主要目标是实现获取内容二进制数据的接口,主要是为后面的消息功能提供服务 具体实现 客户端发送请求 服务端处理请求,同时支持三种数据类型 客户端处理服务端的响应 2. 发送图片消息 客户端与服务端的通信约定 客户端从服务器中获取图片…

Shell基础2

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…

【freertos】FreeRTOS时间管理

FreeRTOS时间管理 一、睡眠延时函数1、vTaskDelay2、vTaskDelayUntil3、相对延时与绝对延时对比 二、自定义延时函数1、微秒延时2、毫秒延时 一、睡眠延时函数 1、vTaskDelay \quad 在UCOSIII 中延时函数OSTimeDly()可以设置为三种模式:相对模式、周期模式和绝对模式。在FreeR…

【Three.js基础学习】24. shader patterns

前言 课程回顾: ShaderMaterial 这里用的是着色器材质 所以顶点和片段着色器就不需要像原始着色器那样添加需要的属性 然后写 片段着色器需要属性 : 顶点 属性 -》变化 -》 片段中 顶点中的属性不需要声明 只需要声明传送的变量 例如 varying vec vUv; vUv uv; 补充…

量子前沿英雄谱|光量子计算的前沿探险家:Jeremy O‘Brien

大航海时代,书写了一部人类探索与发现的壮丽史诗,而作为宏大叙事背后若干个体之一,那些大大小小航船上载着的,是一群不断航向未知海域的坚定探险家。 日光底下无新事。从著名物理学家费曼提出量子计算机的概念起 ... 大航海时代&a…

RK3568平台开发系列讲解(GPIO篇)GPIO的sysfs调试手段

🚀返回专栏总目录 文章目录 一、内核配置二、GPIO sysfs节点介绍三、命令行控制GPIO3.1、sd导出GPIO3.2、设置GPIO方向3.3、GPIO输入电平读取3.4、GPIO输出电平设置四、Linux 应用控制GPIO4.1、控制输出4.2、输入检测4.3、使用 GPIO 中断沉淀、分享、成长,让自己和他人都能有…