深入拆解JVM虚拟机1-JVM如何将java字节流转化为JAVA类的?

JVM构架Architecture
深入拆解JVM虚拟机1-JVM如何将java字节流转化为JAVA类的?

JVM中的数据类型

深入拆解JVM虚拟机1-JVM如何将java字节流转化为JAVA类的?
JAVA 参考类型

数组类,类,接口,泛型

加载,链接,初始化

1:加载
加载是指查找字节流,并且据此创建类的过程。加载需要借助类加载器。
JVM中使用双亲委派模型-------即接收到加载请求后,先由父类加载器加载,若父类加载器没有找到请求类,才有子类加载器加载。

2:链接

是指创建成的类合成至JVM中,使之能够执行的过程。
链接分为验证、准备和解析三个过程
a:验证:验证.class满足虚拟机的要求
b:准备:静态字段的内存分配
c:解析(非必要):若字节码存在符号引用,则执行这些字节码之前,需要完成对这些符号引用的解析。

3:初始化
final 常量值直接由JAVA虚拟机初始化完成。
其余的常量的直接赋值和静态代码置于<clinit>中
线程安全,只会初始化一次从而引出单例的延迟初始化


上述流程完成后,类才成为可执行的状态。