首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习Java基础知识,打通面试关~十八学习加载器的双亲委派模型

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

作者头像
用户2196435
发布2018-08-10 17:08:35
1900
发布2018-08-10 17:08:35
举报
文章被收录于专栏:LuckQILuckQI
在上篇的文章中学习Java基础知识,打通面试关~十七了

类加载器

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

启动类加载器

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

自定义类加载器

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

类加载器的双亲委派模型

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

双亲委派模型

  1. 双亲委派模型如图所示结构,但是并不是所有的加载过程都是按照这样的模式进行的。有自己的其他的模型,比如上下文加载器。
  2. 可见性:子类加载器可以访问父类加载器,但是不能反过来操作。
  3. 单一性:父类加载过的类型,不会在子类加载器中重复出现。 整个流程基本上是如此,那么我们程序需要加载这么多内容,那么会不会导致程序变慢,随着资源越来越多个的情况下,在此基础上java在发张的过程中已经开始了进行解决方案的尝试我们会在Java9以后的源码中可以看到Java对其加载过程的尝试
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LuckQI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档