美文网首页
双亲委派、沙箱安全机制

双亲委派、沙箱安全机制

作者: 乘风破浪丶文鑫 | 来源:发表于2021-08-26 21:49 被阅读0次

定义

双亲委派机制
Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该
类时才会将它的class文件加载到内存生成class对象。而且加载某个类的
class,文件时,Java虚拟机采用的是双亲委派模式,当类加载器需要加载某一个.class字节码文件时,则首先会把这个任务委托给他的上级类加载器,递归这个操作,如果上级没有加载该.class文件,自己才会去加载这个.class。

图片.png
image.png

JVM中提供了三层的ClassLoader:

Bootstrap classLoader: 主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。
ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展的jar。
AppClassLoader:主要负责加载应用程序的主函数类
CustomClassLoader(用户自定义类加载器):可加载指定目录的class文件

沙箱安全机制

防止加载同一个.class,保证核心class不被篡改:通过委托的方式,保证核心.class不被篡改,即使被篡改也不会被加载,即使被加载也不会是同一个class对象,因为不同的加载器加载同一个.class也不是同一个Class对象。这样则保证了Class的执行安全。

比如定义一个名字叫String的类,所在包为java.lang。因为这个类本来是属于jdk的,如果没有沙箱安全机制的话,这个类将会污染到我所有的String,但是由于沙箱安全机制,所以就委托顶层的bootstrap加载器查找这个类,如果没有的话就委托extsion,extsion没有就到aapclassloader,但是由于String就是jdk的源代码,所以在bootstrap那里就加载到了,先找到先使用,所以就使用bootstrap里面的String,后面的一概不能使用,这就保证了不被恶意代码污染


image.png

相关文章

  • jdk读书笔记

    双亲委派机制:沙箱安全机制:自己写的String.class类不会被加载,防止核心API库被随意篡改避免被重复加载...

  • 从类加载开始的JVM学习

    目录 引言 java类加载流程 java类加载机制- 类加载原理- 双亲委派机制 Tomcat中双亲委派机制的应用...

  • 双亲委派机制

    为什么设计双亲委派机制:1.沙箱保护机制,保护jre包下的核心类不被其他加载器创建,只能由自己的引导类加载器创建2...

  • SPI的ClassLoader问题

    问题 为什么说spi服务机制破坏了双亲委派模型? 双亲委派机制 启动类加载器(Bootstrap ClassLoa...

  • Tomcat类载入器

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

  • 双亲委派机制

    一级标题 从META-INF/services/java.sql.Driver文件得到实现类名字DriverACl...

  • 双亲委派机制

  • 双亲委派机制

    来源:https://kaiwu.lagou.com/course/courseInfo.htm?courseId...

  • 双亲委派机制

    双亲委派机制定义:当一个类加载器收到了类加载的请求的时候,他不会直接去加载指定的类,而是把这个请求委托给自己的父加...

  • 双亲委派机制

    前言 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将其class文件加载到内...

网友评论

      本文标题:双亲委派、沙箱安全机制

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