双亲委派机制

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

余生长醉 提交于 2020-03-02 16:50:38
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: ‍ ‍ 类加载体系 ‍ ‍ .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 本篇博客主要介绍 “类加载体系”的基本原理; 如需了解其它几类安全机制可以通过上面的 博客链接进入查看。 简介 “类加载体系”及ClassLoader双亲委派机制。java程序中的 .java文件编译完会生成 .class文件,而 .class文件就是通过被称为类加载器的ClassLoader加载的,而ClassLoder在加载过程中会使用“双亲委派机制”来加载 .class文件,先上图: 看着图从上往下介绍: BootStrapClassLoader:启动类加载器,该 ClassLoader是jvm在启动时创建的,用于加载 $JAVA_HOME/jre/lib下面的类库(或者通过参数 -Xbootclasspath指定 )。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不能直接通过引用进行操作。 ExtClassLoader:扩展类加载器, 该 ClassLoader是在sun.misc.Launcher 里 作为一个内部类 ExtClassLoader 定义的(即 sun.misc.Launcher