类加载的过程知道吗?

类加载的过程知道吗?
加载是 JVM 加载的起点,具体什么时候开始加载,《Java 虚拟机规范》中并没有进行强制约束,可以交给虚拟机的具体实现来自由把握。
在加载过程,JVM 要做三件事情:
- 1)根据类的全限定名获取该类的二进制字节流。
- 2)将获取的字节流转化为方法区的运行时数据结构,即将静态存储结构表示为方法区的内部格式。
- 3)在内存中创建一个 java.lang.Class 对象,代表加载的类,用于访问方法区中的类数据。
加载阶段完成后,Java虚拟机会将外部的二进制字节流按照指定的格式存储在方法区中。方法区中的数据结构格式由虚拟机实现自行定义,而《Java虚拟机规范》并未规定该区域的具体结构。
在类型数据正确存储于方法区后,虚拟机会在Java堆内存中创建一个java.lang.Class对象,该对象作为程序访问方法区中类型数据的外部接口。该对象提供了访问类的结构、字段、方法等信息的方法。