线程上下文类加载器(ClassLoader)

本文介绍了Java的ClassLoader,包括其作用和等级加载机制:BootStrap、Extension和Application ClassLoader。讨论了线程上下文ClassLoader的作用,即在双亲委派模型下提供自定义加载的灵活性,并提及Tomcat中WebappClassLoader的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ClassLoader
ClassLoader介绍

ClassLoader 顾名思义就是类加载器,ClassLoader 作用:

  1. 负责将 Class 加载到 JVM 中
  2. 审查每个类由谁加载(父优先的等级加载机制)
  3. 将 Class 字节码重新解析成 JVM 统一要求的对象格式

思考问题:1.首先是正常的一个类是怎么加载到虚拟机的 2.自定义的ClassLoader怎么加载类和卸载类

ClassLoader 的等级加载机制

BootStrap ClassLoader

称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等,这个ClassLoader完全是JVM自己控制的,需要加载哪个类,怎么加载都是由JVM自己控制。

EtxClassLoader

称为扩展类加载器,负责加载Java的扩展类库,Java 虚拟机的实现会提供一个扩展库目录,该类加载器在此目录里面查找并加载 Java 类。默认加载JAVA_HOME/jre/lib/ext/目下的所有jar。

AppClassLoader

称为系统类加载器,负责加载应用程序classpath目录下的所有jar和class文件。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。我们可以通过System.getProperty(“java.class.path”) 来查看 classpath。

所有的Class基本都是会在类路径下,如果我们需要获取任意一个路径的类,需要自定义加载器,去加载。

ClassLoader 的等级加载机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值