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

news/2024/11/16 20:16:11/

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

相关文章

基于Java Springboot在线教育学习系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

操作系统——同步

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt,仅供学习交流使用,谢谢。 背景 解决有界缓冲区问题的共享内存方法在并发变量上存在竞争条件,即多个并发进程访问和操作同一个共享数据,从而其执行结果与特定访问次序有关。这种…

高级java每日一道面试题-2024年11月07日-Redis篇-Redis有哪些功能?

如果有遗漏,评论区告诉我进行补充 面试官: Redis有哪些功能? 我回答: Redis 是一个开源的、基于键值对的 NoSQL 数据库,以其高性能、丰富的数据结构和多种功能而闻名。在高级 Java 面试中,了解 Redis 的核心功能和高级特性是非常重要的。以下是 Redi…

java中设计模式的使用(持续更新中)

概述 设计模式的目的:编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有…

数据结构题集-第二章-线性表-有序未去重顺序表的交集

有序未去重顺序表的交集 说明2.27 假设两个元素依值递增有序排列的线性表A和B解1解2 说明 本文参照严蔚敏《数据结构(C语言版)题集》一书中包含的问答题和算法设计题目,提供解答和算法的解决方案。请读者在自己已经解决了某个题目或进行了充分的思考之后&#xff0…

图形几何之美系列:仿射变换矩阵之先转后偏

“在几何计算、图形渲染、动画、游戏开发等领域,常需要进行元素的平移、旋转、缩放等操作,一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等,四元数在图形学中主要用于解决旋转问题,特别是在三维…

DB-GPT系列(四):DB-GPT六大基础应用场景part1

一、基础问答 进入DB-GPT后,再在线对话默认的基础功能就是对话功能。这里我们可以和使用通义千问、文心一言等在线大模型类似的方法, 来和DB-GPT进行对话。 但是值得注意的是,DB-GPT的输出结果是在内置提示词基础之上进行的回答&#xff0c…

Java项目实战II基于微信小程序的实习记录(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在高等教育…