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)解析:
把即将用到的类的符号引用转化为地址引用。
需要转化为具体的地址这样才能使用
3.初始化:
加载静态代码块以及为静态变量赋值
了解JVM类加载机制有什么用?
反射大家都知道,有很多种什么class.forname(),getClass()等等。但是这几种方法是有区别的区别就在于是否走初始化阶段,后续博客讲创建对象的几种方式 的时候会提到哈。