类装载过程:
1.加载:根据路径找到类加载到内存中
2.验证:验证class类的准确性
3.准备:给类中的静态变量分配空间
4.解析:虚拟机将常量的符号引用变为直接引用,符号引用只是一个标示,而直接引用就是指向内存中的地址
5.初始化:对静态变量和静态代码块进行初始化工作
类加载器分类:
1.jvm角度:启动类加载器和其它类加载器
2.Java开发角度:启动类加载器,扩展类加载器,应用程序类加载器,自定义类加载器,四者为父子关系
类加载器是有层次的
一般是: 自定义类加载器 >> 应用程序类加载器 >> 扩展类加载器 >> 启动类加载器
类加载机制:双亲委派
如果一个类加载器收到加载类的请求,首先它自己不会加载,而是自己先委派给自己上一层的类加载器,直到委派给最顶层的类加载器先加载,当没有搜索到上层类加载器的时候,子类才会尝试加载。