美文网首页Java 杂谈写作与程序
学习Java基础知识,打通面试关~十七学习加载器的双亲委派模型

学习Java基础知识,打通面试关~十七学习加载器的双亲委派模型

作者: 胖琪的升级之路 | 来源:发表于2018-07-29 22:57 被阅读0次

在上篇的文章中我们学习了Java中怎么进行类的加载,从加载,验证,准备,解析,初始化这几个阶段进行。其中验证,准备,解析可以共同解释为链接该阶段。我们平常在生活中使用某个物品都会先有其他东西才会使用现在的物品,比如大家在吃饭的时候需要有食物,还有碗筷子等等物品。当然我在这里说的中餐哈。
我门在Java也有自己的加载器,这是用来实现加载的过程所必须的物品。

类加载器

在Java中有两种不同的类加载器:一个是启动类加载器,该加载器是虚拟机的一部分,另外一个加载器就是其他类加载器也可以说是自定义类加载器。

启动类加载器

启动类加载器是负责将存放在JAVA_HOME>lib目录中的符合正确规则的类库进行加载到虚拟机内存当中。

自定义类加载器

在java中自定义类加载器分为两类一种是扩展类加载器,还有就是应用程序类加载器,不同的是扩展类加载器是可以让开发者直接使用的。应用程序类加载器如果用户没有自定义自己的加载器那么直接使用ClassLoader中的加载器getSystemClassLoader()来得到返回值。

类加载器的双亲委派模型

我们前面看到几种类加载器,我们的主题是双亲委派模型,那么该概念是什么呢?
简单来说就是当类加载器尝试加载某个类型的时候,除非附加载器找不到对应的类型,尽量将任务代理给当前的加载器的父加载器去操作。目的是避免重复加载Java类型。
通常类加载机制有三个基本特征:

双亲委派模型
  1. 双亲委派模型如图所示结构,但是并不是所有的加载过程都是按照这样的模式进行的。有自己的其他的模型,比如上下文加载器。
  2. 可见性:子类加载器可以访问父类加载器,但是不能反过来操作。
  3. 单一性:父类加载过的类型,不会在子类加载器中重复出现。
    整个流程基本上是如此,那么我们程序需要加载这么多内容,那么会不会导致程序变慢,随着资源越来越多个的情况下,在此基础上java在发张的过程中已经开始了进行解决方案的尝试我们会在Java9以后的源码中可以看到Java对其加载过程的尝试。

相关文章

  • 学习Java基础知识,打通面试关~十七学习加载器的双亲委派模型

    在上篇的文章中我们学习了Java中怎么进行类的加载,从加载,验证,准备,解析,初始化这几个阶段进行。其中验证,准备...

  • ClassLoader重点梳理

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

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

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

  • JVM系列(九):Java类加载机制之双亲委派模型

    前言 双亲委派模型是Java加载类的机制.采用双亲委派模型的好处是Java类随着它的类加载器一起具备了一种带有优先...

  • Java 类加载

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

  • 双亲委派模型

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

  • Tomcat类载入器

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

  • java类加载机制

    双亲委派模型:Bootsrap类加载器,负责加载JAVA_HOME/lib下的类或者被-Xbootclasspat...

  • 简单了解什么是双亲委派机制?

    什么是双亲委派机制 了解双亲委派,需要先了解下JAVA的类加载器ClassLoader,java的类加载器主要有以...

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

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

网友评论

    本文标题:学习Java基础知识,打通面试关~十七学习加载器的双亲委派模型

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