Java虚拟机(JVM)-类的加载过程

Java虚拟机(JVM)-类的加载过程

类的加载过程:

1.加载:

把本地的class文件加载到内存中,为后续工作做准备

2.连接

 2.1)验证:

JVM有自己的一套机制,class必须满足才能在JVM上运行。比如:前几位为魔数,后边是JVM的版本能反推出JDK的版本等等(只要符合JVM的机制就可以在JVM上运行,所以不是只要JAVA语音才行)

 2.2)准备:

为静态变量附初始值,比如 static int 则为0,static 引用类型 则为null等等。(此处只为静态变量赋值,普通成员变量是在new对象的时候初始化并且赋值的)

 2.3)解析:

把即将用到的类的符号引用转化为地址引用。

Java虚拟机(JVM)-类的加载过程

需要转化为具体的地址这样才能使用

3.初始化

加载静态代码块以及为静态变量赋值

了解JVM类加载机制有什么用?

反射大家都知道,有很多种什么class.forname(),getClass()等等。但是这几种方法是有区别的区别就在于是否走初始化阶段,后续博客讲创建对象的几种方式 的时候会提到哈。