美文网首页
收藏不看系列——类加载的双亲委派模型

收藏不看系列——类加载的双亲委派模型

作者: icyage | 来源:发表于2018-12-04 17:49 被阅读12次

上一期收藏不看系列文章中提到一个比较重要的点就是类加载需要经历一个特殊的过程,那么这期就跟大家分享类加载过程中重要的知识点,类加载的规范。

类加载之双亲委派模型

学习Java的小伙伴们,类加载这个概念肯定不陌生,那么对于加载需要经历那些过程呢?下面给大家简单分享一下。

类加载器

类和类加载器

在Java里面一切皆为对象,包括class也都是Class的对象,那么对于类来说类加载器是一个唯一的入口,让类加载到JVM中为程序使用。说是唯一入口,JVM中会有很多类加载器,他们有着各自职责使JVM中的类更规范有序。

  • 启动类加载器(Bootstrap ClassLoader)——启动类加载器C++实现,虚拟机的重要组成部分,加载JVM必须的基础资源,JAVA_HOME/lib下或者-Xbootclasspath指定目录中的虚拟机基础类库
  • 扩展类加载器(Extension ClassLoader)——sun.misc.Launcher$ExtClassLoader实现的,负责加载JAVA_HOME/lib/ext目录中或者java.ext.dirs指定目录中的所有类库
  • 应用程序类加载器(Application ClassLoader)——sun.misc.Launcher$AppClassLoader实现的,可以通过ClassLoader.getSystemClassLoader()获得,所以也叫系统类加载器,负责加载所有用户classpath中的类库

双亲委派模型

下面就要提到这一期的重点了,双亲委派模型。


这个模型不是强制性的约束,就是说设计者推荐给开发者的类加载实现方式。

工作流程

一个类加载器收到类加载的请求,这个加载器会把这个请求委派给父类加载器,每一层类加载器都重复这个流程,直到没有父类加载器,当父类加载器没有成功加载类加载请求(没有搜索到所需要的类),那么就子类加载器才尝试加载,重复这个流程,直到接收到请求的那个类加载器,如果还是没有成功加载,那么会抛出ClassNotFound异常。

优势

  • 层次结构清晰
  • 有优先级的概念
  • 保证JVM基础类安全,不会轻易被覆盖掉

总结

类加载的设计方便了我们在程序设计的时候,不用考虑类覆盖的问题,那么对于开发者是非常友好的。而且我们通过类加载器实现一些比较灵活的功能,比如:热加载等。

相关文章

  • 收藏不看系列——类加载的双亲委派模型

    上一期收藏不看系列文章中提到一个比较重要的点就是类加载需要经历一个特殊的过程,那么这期就跟大家分享类加载过程中重要...

  • Java 类加载

    双亲委派模型 并非强制 而是推荐 SPI 父类加载器需要子类加载器加载类 打破双亲委派模型 https://www...

  • java类加载破坏双亲委派模型

    前面java类加载器与双亲委派模型中提到Java采用个双亲委派的方式来完成类加载,但是双亲委派模型并不是一个强制的...

  • 类加载机制 双亲委派模型

    双亲委派模型 模型如下图: 双亲委派模型中除了启动类加载器之外其余都需要有自己的父类加载器 当一个类收到了类加载请...

  • ClassLoader重点梳理

    类加载器 对类加载器的学习重点要掌握以下几点: 双亲委派模型的概念 双亲委派模型的实现原理 类加载器的工作原理 如...

  • 要点提炼| 理解JVM之类加载机制

    本篇将了解类加载机制和双亲委派模型这两大知识考点: 概述 类加载全过程 类加载器&双亲委派模型 1.概述 a.JV...

  • Tomcat类载入器

    大家都知道,Java的类加载机制是双亲委派模型,那么什么是双亲委派模型呢?我们这里简要的说一下,双亲委派模型...

  • 双亲委派模型

    一、什么是双亲委派模型 约定: 双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应有自己的父亲加载器(但...

  • Java虚拟机

    JVM 组成部分 类加载器 执行引擎 内存区 本地方法调用 类加载器 双亲委派模型 类的加载过程采用双亲委派机制,...

  • 类加载器与双亲委派模型

    1. 双亲委派模型 1.1 什么是双亲委派模型 首先,先要知道什么是类的加载器。简单说,类加载器就是根据指定全限定...

网友评论

      本文标题:收藏不看系列——类加载的双亲委派模型

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