类加载器(ClassLoader)

主要负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,也就是第一次使用该类时才加载

双亲委派除了顶层的启动类加载器之外,其余加载器都应当有自己的父类加载器

一、什么是双亲委派

双亲委派模式是在Java 1.2后引入的,原理就是 如果一个类加载器收到类加载的请求,它不会自己先去加载,而是先把这个请求委托给他的父类加载器,如果他的父类加载器还有父类加载器,它就会进一步向上委托,直到委托到顶层的启动类加载器。如果父加载器可以加载这个类请求的话就会成功返回,反之,父加载器无法加载此任务,子类加载器才会尝试自己去加载

二、双亲委派模型

双亲委派这种加载方式可以有效避免类的重复加载,如果父类加载器已经加载过,子ClassLoader就没有比要在重新加载一次了。

如果要通过网络传递一个伪造的类,通过双亲委派发现这个类已经被加载过,就不会重新加载传递过来的类,而是直接返回已经被加载过的类,便可以防止Java核心类被随意篡改。

向上委派到顶层加载器为止,向下查找找到发起加载的加载器为止。

委派到顶层后,如果缓存还是没有,则到加载路径中查找,有则加载返回,没有则继续向下查找。

Java 双亲委派模型相关推荐

  1. Java双亲委派模型是什么、优势在哪、双亲委派模型的破坏

    定义 双亲委派模式的工作原理的是;如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终 ...

  2. Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?

    文章目录 一.前言 二.类加载器 三.双亲委派机制 1.什么是双亲委派 2.为什么要双亲委派? 四.破坏双亲委派 1.直接自定义类加载器加载 2.跳过AppClassLoader和ExtClassLo ...

  3. Java 双亲委派模型机制

    前言 Java是运行在Java的虚拟机(JVM)中的,在初步学习Java时,我们都知道,编写的Java源代码会被编译器编译成.class的字节码文件.然后ClassLoader负责将这些class文件 ...

  4. 15.什么是双亲委派模型?

    什么是双亲委派机制? 双亲委派机制的意思是除了顶层的启动类加载器以外,其余的类加载器,在加载之前,都会委 派给它的父加载器进行加载.这样一层层向上传递,直到祖先们都无法胜任,它才会真正的加 载. 双亲 ...

  5. java 打破双亲委派,为什么说java spi破坏双亲委派模型?

    虽然有SPI破坏双亲委派模型的说法,但我不太认同.简单说下. 双亲委派模型(再次吐槽下这个翻译),是一种加载类的约定.这个约定的一个用处是保证安全.比如说你写Java用了String类,你怎么保证你用 ...

  6. Java虚拟机:对象创建过程与类加载机制、双亲委派模型

    一.对象的创建过程: 1.对象的创建过程: 对象的创建过程一般是从 new 指令(JVM层面)开始的,整个创建过程如下: (1)首先检查 new 指令的参数是否能在常量池中定位到一个类的符号引用: ( ...

  7. 28 Java类的加载机制、什么是类的加载、类的生命周期、加载:查找并加载类的二进制数据、连接、初始化、类加载器、双亲委派模型、自定义类加载器

    28Java类的加载机制 28.1.什么是类的加载 28.2.类的生命周期 28.2.1.加载:查找并加载类的二进制数据 28.2.2.连接 28.2.3.初始化 28.3.类加载器 28.4.类的加 ...

  8. Android插件化开发基础之Java类加载器与双亲委派模型

    类加载器 Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程. 在加载阶段,java虚拟机需 ...

  9. java类验证和装载顺序_Java类的加载机制和双亲委派模型

    Java类的加载机制和双亲委派模型 1类的加载机制 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading).验证(Verification).准备(Prepar ...

最新文章

  1. 一个比较完整的Inno Setup 安装脚本
  2. java 实现set,Java--Set的三个具体实现类
  3. Android 自动化测试——Monkey测试
  4. 如何用 5 天攻克产品困境?Sprint 硅谷创新冲刺告诉你!
  5. 一题多解 —— 判断一个数是否为奇数
  6. 对话清华NLP实验室刘知远:NLP搞事情少不了知识库与图神经网络
  7. 手推SVM(二)-核方法
  8. OpenGL ES:相机预览添加滤镜效果
  9. Python 中拼音库 PyPinyin 的使用
  10. python好学吗要有什么基础-Python0基础好学吗?
  11. 74ls163是同步清零吗_74LS163是具有同步清零功能的十六进制计数器,要
  12. 手把手教你用vue+JavaScript+openlayers+iview制作实时天气预报图
  13. python制作手机通讯录功能
  14. html点击添加购物车的,如何根据给定的html点击添加到购物车按钮?
  15. 什么是Oozie——大数据任务调度框架
  16. iOS----------适配iOS12
  17. Android第一行代码(第一行代码、活动)
  18. 植物大战僵尸:分析植物的攻击速度
  19. 微信朋友圈如何批量发圈
  20. 基于C语言QT开发的校园导游系统 设计文档+项目源码

热门文章

  1. 自动驾驶激光雷达、摄像头、毫米波雷达融合算法
  2. 刘强东新建三大事业群背后的野心,要在技术上战胜阿里巴巴
  3. Kali安装Fluxion详细步骤(附加遇坑解决办法)
  4. excel宏字符串连接mysql_EXCEL 连接字符串 MYSQL
  5. R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的计数个数、均值和中位数、使用list函数指定函数列表并指定自定义函数名称
  6. Python+Selenium一键进入B站王冰冰近期vlog
  7. 自学前端第二十四天:Animation动画栈帧效果
  8. iacr crypto 级别_梦幻西游:120级光辉之甲无级别项链问世!16万上架即被瞬秒
  9. kettle插件开发
  10. 2.宽带安装与故障修复-1-新装