双亲委派机制

  双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。

双亲委派模型工作工程:

  1.当Application ClassLoader 收到一个类加载请求时,他首先不会自己去尝试加载这个类,而是将这个请求委派给父类加载器Extension ClassLoader去完成。

  2.当Extension ClassLoader收到一个类加载请求时,他首先也不会自己去尝试加载这个类,而是将请求委派给父类加载器Bootstrap ClassLoader去完成。

  3.如果Bootstrap ClassLoader加载失败(在<JAVA_HOME>\lib中未找到所需类),就会让Extension ClassLoader尝试加载。

  4.如果Extension ClassLoader也加载失败,就会使用Application ClassLoader加载。

  5.如果Application ClassLoader也加载失败,就会使用自定义加载器去尝试加载。

  6.如果均加载失败,就会抛出ClassNotFoundException异常。

例子:

  当一个Hello.class这样的文件要被加载时。不考虑我们自定义类加载器,首先会在AppClassLoader中检查是否加载过,如果有那就无需再加载了。如果没有,那么会拿到父加载器,然后调用父加载器的loadClass方法。父类中同理会先检查自己是否已经加载过,如果没有再往上。注意这个过程,直到到达Bootstrap classLoader之前,都是没有哪个加载器自己选择加载的。如果父加载器无法加载,会下沉到子加载器去加载,一直到最底层,如果没有任何加载器能加载,就会抛出ClassNotFoundException。

什么是双亲委派机制?相关推荐

  1. 简单的Java双亲委派机制

    双亲委派机制 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象,而且加载某个类的class文件时,Java虚拟机采用的 ...

  2. 【JVM】类加载器:双亲委派机制、沙箱安全机制

    · 双亲委派机制.沙箱安全机制是JVM中类加载器系统的相关术语 · 在这之前,应该先了解JVM类加载器系统的相关概念 一.类加载器基础知识 见下图1,java文件首先会被编译成class文件,clas ...

  3. 【Java 虚拟机原理】Android 类加载机制 ( 双亲委派机制 | BootClassLoader | PathClassLoader | DexClassLoader )

    文章目录 一.Android 类加载机制 二.双亲委派机制 一.Android 类加载机制 Android 中的类加载 使用了 双亲委派 机制 , 如下图所示 : 在 Android 中提供了 333 ...

  4. JVM-白话聊一聊JVM类加载和双亲委派机制源码解析

    文章目录 Java 执行代码的大致流程 类加载loadClass的步骤 类加载器和双亲委派机制 sun.misc.Launcher源码解析 Launcher实例化 Launcher 构造函数 双亲委派 ...

  5. Tomcat - 都说Tomcat违背了双亲委派机制,到底对不对?

    文章目录 类加载的本质 JVM 双亲委派机制 BootstrapClassLoader(启动类加载器) ExtensionClassLoader AppClassLoader Tomcat的 类加载顺 ...

  6. 破坏双亲委派机制的那些事

    前言 今天重读<深入理解Java虚拟>这本书,读到破坏双亲委派机制这一小节,其中有一段话,如下 双亲委派模型的第二次"被破坏"是由这个模型自身的缺陷所导致的,双亲委派很 ...

  7. java安全沙箱(一)之ClassLoader双亲委派机制

    java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...

  8. 什么是java双亲委派机制

    什么是双亲委派机制 在介绍双亲委派模型之前先说下类加载器.对于任意一个类,都需要由加载它的类加载器和这个类本身统一确立在 JVM 中的唯一性,每一个类加载器,都有一个独立的类名称空间.类加载器就是根据 ...

  9. JVM学习笔记之-类加载子系统,类的加载与类的加载过程,双亲委派机制

    一 类加载器与类加载过程 类加载子系统作用 类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识. ClassLoader只负责class文件的加载,至于 ...

  10. 类加载的双亲委派机制

    类加载器的双亲委派机制 ​ 除了根类加载器之外,其他的类加载器都需要有自己的父加载器.从JDK1.2开始,类的加载过程采用双亲委派机制,这种机制能够很好的保护java程序的安全.除了虚拟机自带的根类加 ...

最新文章

  1. 大话设计模式笔记(七)の原型模式
  2. Java数据类型缓存池
  3. CentOS7 64位下MySQL5.7安装与配置
  4. [Swift]LeetCode1020. 飞地的数量 | Number of Enclaves
  5. 从零开始学视觉Transformer (9):自监督ViT算法:BeiT和MAE
  6. mac svn工具_Cornerstone 4 for mac(svn管理工具)
  7. php如何使用正则表达式,php如何使用正则表达式实现替换
  8. MongoDB高级——聚合
  9. 总结协查上海银行绑卡失败原因的处理过程
  10. 基于ExoPlayer的ExoPlayerVideoView
  11. 日本酒店寄送行李至机场的攻略
  12. CrackMe-001
  13. fc安卓模拟器_RA替代计划(上)—3DS的全能模拟器太难用?推荐几个替代品给你...
  14. 超小白教程之快速排序
  15. Arcscene教程
  16. php讲字符串转成数组中,PHP将字符串转数组
  17. GAIN: Missing Data Imputation using Generative Adversarial Nets(基于生成对抗网络的缺失数据填补)论文详解
  18. 《设计模式之禅》目录
  19. 数字字符串转为数字 C语言实现
  20. 光猫路由器与交换机的连接方式

热门文章

  1. C++ 跳跃游戏II
  2. vite+vue3+axios+ts入门mockjs以及深入学习,直接一步精通
  3. 耳机重装系统后服务器坏了,Win7重装后耳机没声音|重装系统后耳机没声音怎么办?...
  4. GPS天线类型和特点
  5. 华为云鲲鹏云服务抢占云上多元算力新赛道
  6. #数论#洛谷 3951 JZOJ 5473 小凯的疑惑
  7. DRM框架(vkms)分析(4)----encoder初始化
  8. 摄像头8mm可以看多远_家用监控摄像头镜头焦距该如何选择_弱电工程
  9. 固高机器人控制器开发笔记
  10. 中望3D 2021 自动标注