双亲委派模式是java的类加载机制,确保类的层次关系,当类收到类加载请求时,该类会委派给器父类进行加载,当父类反馈不能加载时,才会又子类来完成加载。当父类加载过某个类后,子类是不会再次加载,从而防止重复加载。
双亲委派模型可以保证java核心类库的安全性,同时防止类被重复加载。
类加载过程包括加载、验证、准备、解析、初始化。
首先类的装载,包含通过类的全限定名加载类class文件到内存,并生成该类的class对象作为数据的访问入口。
验证的目的确保Class文件的字节流中的信息不会危害到虚拟机,
1、文件格式验证,字节流是否符合class文件的规范,主次版本号是否在虚拟机范围内,常量池是否有不被支持的类型
2、元数据,字节码的语义进行分析,这个类是否有父类,是否继承了不被继承的类
3、字节码验证主要是对类中的方法体的验证,如方法中类型转换以及字节指令的流转是否正确
准备主要是对类的-- 静态变量--分配内存初始化赋值等,这些内存分配在方法区
解析完成符号引用到直接引用的转换
初始化真正意义上的代码的执行。