Java类加载机制及双亲委派模型
Java 的类加载步骤
1. 加载(Loading):
Java 将字节码数据从不同的数据源读取到 JVM 中,并映射为 JVM 认可的数据结构(Class 对象),这里的数据源可能是各种各样的形态,如 jar 文件、class 文件,甚至是网络数据源等;如果输入数据不是 ClassFile 的结构,则会抛出 ClassFormatError。
加载阶段是用户参与的阶段,我们可以自定义类加载器,去实现自己的类加载过程。
2. 链接
3. 初始化
Java 的类加载过程具体行为在Java 虚拟机规范里有非常详细的定义 : https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html