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

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

类加载器是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.mrgr.cn/news/71904.html

相关文章:

  • Android opencv使用Core.hconcat 进行图像拼接
  • 排序算法:直接插入排序,希尔排序,选择排序,快速排序,堆排序,归并排序
  • 【Kubernetes系列】Kubernetes 中的探针模式
  • 从dos上传shell脚本文件到Linux、麒麟执行报错“/bin/bash^M:解释器错误:没有那个文件或目录”
  • HTTP的版本演进,以及他们之间的区别
  • R语言贝叶斯分析:INLA 、MCMC混合模型、生存分析肿瘤临床试验、间歇泉喷发时间数据应用|附数据代码...
  • 专题十八_动态规划_斐波那契数列模型_路径问题_算法专题详细总结
  • 2024134读书笔记|《花间集》——云解有情花解语,山月不知心里事, 水风空落眼前花
  • SpringBoot如何集成WebSocket
  • RT-DETR融合NeurIPS[2022]Ghost Module v2模块
  • C#-命名空间
  • 【FFmpeg】FFmpeg 函数简介 ③ ( 编解码相关函数 | FFmpeg 源码地址 | FFmpeg 解码器相关 结构体 和 函数 )
  • (一)- DRM架构
  • 【364】基于springboot的高校科研信息管理系统
  • WSL2 中大模型环境一步到位!(wsl --update 不好使/wsl2安装/python环境)
  • springboot基于Java的小区物业智能卡管理的设计与实现,计算机毕业设计项目源码311,计算机毕设程序(LW+开题报告、中期报告、任务书等全套方案)
  • 「 审稿答复 」如何写Response评论回复的“第一句”
  • 抖音电商发布双11数据:275个品牌通过直播带货实现成交额过亿元
  • Hyper-v中ubuntu与windows文件共享
  • keras实现道路裂缝检测
  • DHCP和FTP
  • AutoDL使用简记
  • [Codesys]常用功能块应用分享-BMOV功能块功能介绍及其使用实例说明
  • PCL 点云分割 基于CPC算法的分割
  • YOLO11 旋转目标检测 | OBB定向检测 | ONNX模型推理 | 旋转NMS
  • 程序代码设计模式之模板方法模式(1)