黑马程序员技术交流社区
标题:
【成都校区】类加载器
[打印本页]
作者:
xw塔伯
时间:
2019-8-1 19:07
标题:
【成都校区】类加载器
类加载器
什么是类加载器?
用来加载.class文件的东西就称为类加载器
类加载器的作用?
可以将.class文件从本地磁盘加载到JVM中的方法区中
类加载器的分类?
引导类加载器:加载jdk中的jre中的lib里的rt.jar中的资源
扩展类加载器:加载jdk中的jre中的lib里的ert中的资源
系统类加载器:加载的是classpath路径下的资源
最上层:引导类加载器
其次:扩展类加载器
最下层:系统类加载器
类加载器的加载顺序?
class Demo {
public static void main(String[] args) {
Person p = new Person();
String s = new String();
}
}
加载顺序:
1.首先,一切类的加载都是先由最下层,即系统类加载器来加载,但是,由于JVM中具备委托机制,所以,系统类加载器会先委托给上一层来加载,即扩展类加载器来加载,如果扩展类加载器加载不成功,就会在系统类加载器自己的地盘加载,如果系统类加载器加载不成功,就会报NotFoundClassException
2.其次,委托给扩展类加载器加载,由于委托机制,所以,扩展类加载器会委托上一层来加载,即引导类加载器来加载,如果引导类加载器加载不成功,才会再扩展类加载器自己的地盘加载
3.最后,引导类加载器由于没有上一层了,所以只能在自己的地盘加载
Person.class是由哪一个类加载器从本地磁盘加载到方法区中的?
系统类加载器加载
String.class是由哪一个类加载器从本地磁盘加载到方法区中的?
引导类加载器加载
系统类加载是由谁加载,扩展类加载器是由谁加载,引导类加载器是由谁加载?
系统类加载器和扩展类加载器也是jdk中提供的来,是由引导类加载器来加载
引导类加载器不是一个类,是由C语言编写的,是JVM的一部分
作者:
xw塔伯
时间:
2019-8-1 19:37
。。。。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2