美文网首页
类的加载、连接和初始化

类的加载、连接和初始化

作者: 叫我民哥L | 来源:发表于2018-09-28 19:54 被阅读0次

    类加载器加载Class大致过程:

    • S1: 检测此Class是否载入过(即在缓冲区是否有此class),如果有则直接进入S8,否则执行S2
    • S2: 检查父类加载器是否存在,如果存在则执行S3;如果不存在(如果没有父类加载器,要么parent一定是根类加载器,要么本身就是根类加载器),则执行S4
    • S3: 请求使用父类加载器载入目标类,如果成功则跳到S8,否则执行S5
    • S4: 请求使用根类加载器载入目标类,如果成功则跳到S8,否则执行S7
    • S5: 当前类加载器尝试寻找Class文件(从此ClassLoader相关路径中寻找),如果找到则执行S6;否则执行S7
    • S6: 从文件中载入Class,成功后执行S8
    • S7: 抛出ClassNotFoundException异常
    • S8: 返回对应的java.lang.Class对象


      类加载器加载Class.jpg

    相关文章

      网友评论

          本文标题:类的加载、连接和初始化

          本文链接:https://www.haomeiwen.com/subject/nsmuoftx.html