JVM修炼之路【5】-类加载器的分类

类加载器的任务就是把 java字节码文件内容 加载到 JVM 中去


分类

类加载器一般分为两类:

  1. 启动类加载器: 这个类加载器使用C++实现 是虚拟机自身的一部分,启动类加载器加载的内容 包括java.lang.Object、java.lang.String等在内的Java核心类库。
    这些类库是构建Java应用程序的基础,它们通常位于JRE(Java Runtime Environment)的lib目录下。

  2. 虚拟机外部 由java语音实现的,这些类加载器全部继承 抽象类
    java.lang.ClassLoader
    比如拓展类加载器,应用程序类加载器(也叫系统类加载器 它负责加载用户类路径上面所指定的类库)


我们的java程序 基本都是由这几类 类加载器相互配合进行加载的,你加载你负责的部分 我加载我的。
但是 不管是哪个类加载器 它们的加载过程的基本流程是相似的。加载过程通常包括三个阶段:加载、连接和初始化。

最后把java文件字节码 加载到JVM的 方法区中。


从classloader继承而来的 类加载器

启动类加载器是c++写的 我们无法改动 也很难触及核心,我们重点来看看从classloader继承而来的 类加载器

在这里插入图片描述

Extension ClassLoader(扩展类加载器): 该类加载器是用来加载Java平台的扩展库,这些库位于JRE的lib/ext目录下。

Application ClassLoader(应用程序类加载器): 也称为系统类加载器,它负责加载应用程序类路径上的类。应用程序类路径是由用户通过命令行或者其他方式指定的,包括应用程序的JAR文件、类文件目录等。

对于业务代码,通常是由应用程序类加载器加载的。这意味着你的项目中的类,包括你自己编写的业务代码,都会被应用程序类加载器加载到JVM中。当你运行一个Java应用程序时,JVM会创建一个应用程序类加载器,并使用它来加载你的业务代码。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值