1、什么是类加载器,类加载器有那些?
主要有一下四种类加载器:
1 启动类加载器,用来加载java核心类库.无法被java程序直接引用
2 扩展类加载器,用来加载java核心扩展库,java虚拟机的实现会提供一个扩展库目录.该类加载器就会在次目录里面查找并加载java类
3 系统类加载器,它是根据java应用的类路径来加载java类,一般来说java应用类都是通过他来完成加载的
4 自定义类加载器,通过继承java.lang.ClassLoader类的方法实现
2、说一下类装载的执行过程
加载: 根据查找路径找到相对应的class文件然后导入
验证: 检查加载的class文件是否正确
准备: 给类中的静态变量分配内存空间
解析: 虚拟机将常量池中的符号引用变成直接引用的过程
初始化: 对静态变量和静态代码块执行初始化工作
3、双亲委派模型
当一个类收到了类加载请求的时候,不会去直接加载这个类,而是委托他的父类,由父类去加载.
当父类不能去加载的时候,反馈给子类,由子类去加载