java 类加载机制
2019-01-10 10:50
465 查看
类加载器
1 类与类加载器
类加载器定义
什么是类加载器?通过一个类的全限定名来获取描述此类的二进制字节流这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”
双亲委派模型
作为开发者角度 以下三类 类加载器大部分java系统都会用
- 启动类加载器 BootStrap ClassLoader 加载<JAVA_HOME>\lib 目录中 或者被-Xbootclasspath参数指定路径中,被虚拟机识别的类库加载到虚拟机内存中 无法被java程序直接饮用
- 扩展类加载器 Extension ClassLoader 由sun.misc.Launcher$ExtClassLoader 实现,负责加载<JAVA_HOME>\lib\ext目录 或者被java.ext.dirs系统变量指定路径所有类库 开发者可以直接使用扩展类加载器
- 应用程序类加载器 Application ClassLoader 有sun.misc.Launcher$App-ClasserLoader实现 由ClassLoader中的getSystemClassLoader()方法返回值, 负责加载用户路径ClassPath上所指定的类库,开发者可以直接使用这个类加载器;
2、双亲委派机制
类加载器之间这种层次关系(如上图),称为类加载器的双亲委派模型(Parents Delegation Model)
双亲委派模型要求除了顶层的启动类加载器外,其余类加载器都要有自己的父类加载器。
双亲委派模型工作过程:
如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一层次类加载器都是如此,因此所有的类加载请求最终都应该传送到顶层的启动类加载器中,只有当负加载器反馈自己无法完成这个加载请求(它的搜索范围没有找到所需的类)时,子加载器才会尝试自己去加载
相关文章推荐
- JAVA类加载机制以及如何自定义类加载器
- 深入探讨Java的类加载机制
- Java类加载机制解析
- JAVA类加载机制基础
- java类加载机制的过程
- Java虚拟机类加载机制
- Java基础:JAVA程序类加载及其反射机制
- Java ClassLoader加载机制小记
- java类的加载机制
- java class加载机制及对象生成机制
- 深入探讨Java的类加载机制
- Java 类加载机制详细介绍
- 从经典面试题看java中类的加载机制
- Java中的类加载机制
- java中类的加载机制
- jvm之java类加载机制和类加载器(ClassLoader)的详解
- 使用Java扩展机制加载所有JAR包
- java中的类加载机制
- JAVA之类加载机制与反射(二)
- Java虚拟机类加载机制