类的生命周期描述了一个从加载、使用到卸载的过程;
而其中的 连接 部分又分为一下三个阶段:
- 验证
- 准备
- 解析
6.1 加载阶段
Loading
阶段第一步是 类加载器 会根据类全限定名通过不同的渠道以二进制流的方式获取字节码信息,程序员可以使用Java
代码扩展不同的渠道。
比如通过
- 磁盘上的字节码文件
- 动态代理生成的字节码文件
- 早期通过网络传输使用的
Applet
技术等;
类加载完成类的加载之后,Java虚拟机会将字节码中的信息保存到方法区中。生成一个InstanceKlass
对象,保存类的所有信息,也包含了实现特定功能的信息,比如实现多态所需的 虚方法表;
与此同时,Java
虚拟机还会再 堆 中生成一份方法区中数据类似的java.lang.Class
对象。这样做的目的是在Java
代码中去获取类的信息以及存