黑马程序员技术交流社区
标题: 【太原校区】类加载器原理 [打印本页]
作者: 郝永亮 时间: 2019-3-22 11:52
标题: 【太原校区】类加载器原理
类加载器1.类加载器的概述负责将.class文件加载到内存中,并为之生成对应的Class对象。我们的最终目标是学习类加载器的加载机制,了解这个机制我们就能更好的理解程序的运行。
2.类加载器的分类Bootstrap ClassLoader 根类加载器
Extension ClassLoader 扩展类加载器
Sysetm ClassLoader 系统类加载器
3.类加载器的作用1.Bootstrap ClassLoader 根类加载器,也被称为引导类加载器,负责Java核心类的加载,比如System,String等。在JDK中jre的lib目录下rt.jar文件中
2.Extension ClassLoader 扩展类加载器负责JRE的扩展目录中jar包的加载。在JDK中JRE的lib目录下ext目录
3.Sysetm ClassLoader 系统类加载器(又叫做Application ClassLoader)负责在JVM启动时加载来自java命令的class文件,以及classpath环境变量所指定的jar包和类路径
4.类加载器原理
父类委托机制:先让父类加载器寻找,只有在父类加载器找不到的情况下才从自己的类路径中去寻找
举例
比如当我们执行java Dog的时候,肯定要先加载Dog.class,本来这个类应该由System Classloader加载,但是这个类加载有父亲,所以就交给Extension Classloader类加载器加载,这个类加载器还有爸爸最后就交给BootStrap Classloader去加载。但是BootStrap 类加载器加载的rt.jar包中并没有这个Dog类,无法加载,就又返回给Extension 类加器加载,这个类加载器在ext目录也找不到Dog类,就又返回给System类加器加载器,如果从classpath目录找到了Dog类就加载,找不到就报错ClassNotFoundException
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |