微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JVM-类与类加载器-《深入理解Java虚拟机》学习笔记

类与类加载器

双亲委派模型

从 Java 虚拟机角度讲,只存在两种类加载器:一种是启动类加载器(C++ 实现,是虚拟机的一部分);另一种是其他所有类的加载器(Java 实现,独立于虚拟机外部且全继承自 java.lang.classLoader)

  1. 启动类加载器
    加载 lib 下或被 -Xbootclasspath 路径下的类
  2. 扩展类加载器
    加载 lib/ext 或者被 java.ext.dirs 系统变量所指定的路径下的类
  3. 应用程序类加载器
    ClassLoader负责,加载用户路径上所指定的类库。

    在这里插入图片描述

除顶层启动类加载器之外,其他都有自己的父类加载器。
工作过程:如果一个类加载器收到一个类加载的请求,它首先不会自己加载,而是把这个请求委派给父类加载器。只有父类无法完成时子类才会尝试加载。

破坏型双亲委派
类加载机制和双亲委派机制

类加载机制就是虚拟机描述类的数据从Class文件加载到内存,对其进行转换解析,最后形成可以被虚拟机直接使用的java类型,这就是类加载机制。

双亲委派机制就是对象接受请求后不会先尝试自己去加载,而是委派给父类去加载,父类也不会直接加载,而是尝试委派给父类去加载,最后都委派到顶层的启动类加载器中,若顶层的启动类加载器无法加载,就交给下一级,下一级加载不了再交给下一级,最后若自己无法加载则抛出异常。主要说就是有优先级的特点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐