类装载器工作机制
类装载器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件,共分三个步骤
1.装载:导入class文件
2.链接:执行校验、准备和解析步骤
校验:检查载入class文件数据的正确性
准备:给类的静态变量分配存储空间,初始化为默认值
解析:将符号引用转成直接引用
3.初始化:对类的静态变量、静态代码块执行初始化工作,赋予正确的初始值。
类的加载
将类的class文件读入内存,放入运行时数据区的方法区(数据结构存放在方法区),并在堆中新建一个类对象,用来封装在方法区的类。
加载器
类的装载是由装载器负责的,classloader是一个重要的java运行时系统组件。
bootstrap classloader 加载javahome jre/lib/rt下的类,由c++编写。不能算作classloader的子类
extention classloader 加载扩展功能的jar包,
app classloader 负责加载classpath中指定的jar包
customer classloader 加载根据程序自定义的jar包
从上往下的顺序也代表了加载器类之间的继承关系。