java类加载器的了解

java类加载器的了解:

  • BootstrapClassLoader

  • EXTClassLoader

  • AppClassLoader

在这里插入图片描述

首先JVM将java源文件编译成.class字节码文件,然后用类加载器将class文件载入到内存供我们使用。可以看出ClassLoader在其中扮演着非常重要的作用。

在这里插入图片描述

  • AppClassLoader的parent是ExtClassLoader
  • ExtClassLoader的parent为null

在这里插入图片描述

现在总结下类加载的整个过程:
(1) 从缓存中查找这个class文件是否已经加载过,如果没有,则委托给父类加载器。
(2)递归,重复第一步操作。
(3)如果ExtClassLoader也没有加载过则使用BootstrapClassLoader查找缓存中是否已经加载过该class文件。如果查找为空,则在sun.mic.boot.class路径下查找,查找成功就返回,否则调用子加载器查找。
(4)如果上面BootstrapClassLoader没有查找成功,则使用ExtClassLoader加载在java.ext.dirs路径下查找,查找成功就返回,否则调用子加载器查找。
(5)如果上面ExtClassLoader没有查找成功,则使用AppClassLoader加载在java.class.path下查找,查找成功就返回,否则调用子类查找。
(6)如果都没有查找到,则抛出异常。
上面这个流程专业术语也叫双亲委托的加载流程,委托是从下往上,查找是从上往下的这个过程。

tomcat的加载方式:

更多参考链接:深入分析理解java类加载器ClassLoader的加载机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值