zoukankan      html  css  js  c++  java
  • Jvm--双亲委派机制

    什么是类加载器?

    类加载器是jre的一部分,负责动态将类添加到Java虚拟机。
    在这里插入图片描述

    类加载分类

    1、启动类加载器 bootstrap classloader :加载jre/lib/rt.jar

    2、扩展类加载器 extension classloader :加载jre/lib/ext/*.jar

    3、应用程序类加载器 application classloader:加载classpath上指定的类库

    双亲委派机制

    双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。

    双亲委派模型工作工程:
      1.当Application ClassLoader 收到一个类加载请求时,他首先不会自己去尝试加载这个类,而是将这个请求委派给父类加载器Extension ClassLoader去完成。

    2.当Extension ClassLoader收到一个类加载请求时,他首先也不会自己去尝试加载这个类,而是将请求委派给父类加载器Bootstrap ClassLoader去完成。

    3.如果Bootstrap ClassLoader加载失败(在<JAVA_HOME>lib中未找到所需类),就会让Extension ClassLoader尝试加载。

    4.如果Extension ClassLoader也加载失败,就会使用Application ClassLoader加载。

    5.如果Application ClassLoader也加载失败,就会使用自定义加载器去尝试加载。

    6.如果均加载失败,就会抛出ClassNotFoundException异常。

    • 1.类加载器收到类加载的请求
    • 2.将这个请求向上委托给父类加载器去完成
    • 3.启动加载器检查是否能够加载当前这个类,能加载就结束,使用当前的加载器。否则,抛出异常,通知子加载器加载
    • 4.重复步骤3
    • Null:java调用不到~ C,C++
  • 相关阅读:
    kotlin,短小精悍
    最近把Vue又看了下
    https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux-cors
    os模块——获取上层目录
    启动flask服务:flask run -h 0.0.0.0 -p 5000
    22端口和3389端口之我竟然用3389连接linux服务器,关键是我之前用22端口连接过linux!!!
    datetime 模块
    查看公网ip
    字典——删除元素
    docker端口映射
  • 原文地址:https://www.cnblogs.com/zhahu/p/12576352.html
Copyright © 2011-2022 走看看