美文网首页
类加载器和双亲委派机制

类加载器和双亲委派机制

作者: 吃块西瓜写代码 | 来源:发表于2019-11-09 12:58 被阅读0次

    类加载器

    1. 什么是类加载器
      类加载器加载的是.clss文件,至于能否运行不由类加载器负责。相当于连接了.class和jvm。

    2. 类加载器的分类

    • 启动类加载器(bootstraap):负责加载jre中最基础,最重要的类,例如java.lang.String。还有虚拟机参数 -Xbootclasspath 指定的类。由于它由由C++代码实现,没有对应的java对象,因此在java中,尝试获取此类时,只能使用null来指代。
    • 扩展类加载器 (Extension):由Java代码实现,用于加载相对次要、但又通用的类,比如存放在 JRE 的 lib/ext 目录下 jar 包中的类,
    • 应用程序类加载器(AppClassLoader):加载自己写的java程序
    • 除了BootStrap ,其他的类都是ClassLoader的子类。

    双亲委派机制

    其实就是一个类加载器接收到加载请求时,它会先将请求转发给父类加载器。在父类加载器没有找到所请求的类的情况下,该类加载器才会去加载。这样的好处一就是:可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次。二是更加安全,比如jt包下的java.lang.String类如果被重写,由于父类加载了,字类不会再加载,调用时依旧是调用的父类加载的原来的String.

    相关文章

      网友评论

          本文标题:类加载器和双亲委派机制

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