ClassLoader的双亲委派机制,源码

Posted llf7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClassLoader的双亲委派机制,源码相关的知识,希望对你有一定的参考价值。

技术图片

自底而上查看类是否加载过:

  • 1 检查类对象是否被加载过
  • 2 如果被加载过,直接返回Class对象
  • 3 如果没有被加载过,则调用parent中的loadClass方法,重新回到第 1 步
    ( 如果parent为空,则调用native的findBootstrapClassOrNull方法)

自顶而下尝试加载类:

  • 1 使用findClass方法,从硬盘上查找是否有对应的字节码文件
    • 有则加载该字节码进内存
    • 没有该字节码文件,则抛出异常。

    会捕获所有parent的loadClass方法的异常。
    如果自顶而下没有找到该字节码文件,那么最后会从用户自定义的类加载器中查找字节码文件
    此时的异常没有被捕获,会被抛出。




以上是关于ClassLoader的双亲委派机制,源码的主要内容,如果未能解决你的问题,请参考以下文章

ClassLoader的双亲委派机制

为什么说SPI打破双亲委派机制

为什么说SPI打破双亲委派机制

JVM17_Tomcat打破双亲委派机制执行顺序底层代码原理Tomcat|JDBC破坏双亲委派机制带来的面试题

类加载和双亲委派机制

Android类加载机制