深入理解JVM(十)——类加载器
2017-07-31 10:20
197 查看
类与类加载器
类加载器的作用:将class文件加载进JVM的方法区,并在方法区中创建一个java.lang.Class对象作为外界访问这个类的接口。类与类加载器的关系:比较两个类是否相等,只有当这两个类由同一个加载器加载才有意义;否则,即使同一个class文件被不同的类加载器加载,那这两个类必定不同,即通过类的Class对象的equals执行的结果必为false。
类加载器种类
JVM提供如下三种类加载器:启动类加载器
负责加载Java_Home\lib中的class文件。
扩展类加载器
负责加载Java_Home\lib\ext目录下的class文件。
应用程序类加载器
负责加载用户classpath下的class文件。
双亲委派模型
工作过程:如果一个类加载器收到了加载类的请求,它首先将请求交由父类加载器加载;若父类加载器加载失败,当前类加载器才会自己加载类。作用:像java.lang.Object这些存放在rt.jar中的类,无论使用哪个类加载器加载,最终都会委派给最顶端的启动类加载器加载,从而使得不同加载器加载的Object类都是同一个。
原理:双亲委派模型的代码在java.lang.ClassLoader类中的loadClass函数中实现,其逻辑如下:
首先检查类是否被加载;
若未加载,则调用父类加载器的loadClass方法;
若该方法抛出ClassNotFoundException异常,则表示父类加载器无法加载,则当前类加载器调用findClass加载类;
若父类加载器可以加载,则直接返回Class对象;
转自:http://blog.csdn.net/u010425776/article/details/58145910
相关文章推荐
- 深入理解JVM(三)——垃圾收集策略详解
- 深入理解JVM(二)------Java代码执行机制
- 深入理解JVM-内存模型
- 深入理解JVM:OutOfMemory实战
- 深入理解JVM之类的加载机制
- JVM--第二章--深入理解对象的创建、内存布局、访问定位
- java零碎要点001--深入理解JVM_Java的堆内存_栈内存_以及运行时数据区的作用
- [深入理解JVM 四]---Jvm运行时内存分析
- 深入理解JVM—JVM内存模型
- 深入理解JVM、Java内存分配、管理小结
- 深入理解JVM - 走进JAVA
- 深入理解 JVM(上)
- 深入理解JVM(4)——如何优化Java GC「译」
- 深入理解JVM
- 深入理解JVM垃圾回收机制
- [深入理解JVM 二]---Java的编译过程
- 深入理解JVM(二)-类加载机制
- 深入理解Java虚拟机---(1)JVM五大内存区域划分
- 深入理解JVM—JVM内存模型
- JVM深入理解