JAVA-大白话探索JVM-类加载过程(二)

首先咱们知道JVM是什么以及类加载器的做用

不清楚的能够看看 JAVA-大白话探索JVM-类加载器(一)java

如今咱们来摸索下类的加载过程

首先,咱们将类加载过程分为三步走

  1. 装载
  2. 连接
  3. 初始化

其中 连接 分为三步骤数据结构

图1

1.装载

  • 经过一个类的全限定名获取其定义的二进制字节流
  • 将这个字节流所表明的静态存储结构转化为方法区的运行时数据结构
  • 在堆中生成一个表明这个类的java.lang.Class对象,做为对方法区中这些数据的访问入口

2.连接

  1. 验证3d

    • 确保Class文件的字节流信息符合JVM的要求指针

    • 4个阶段校验(文件格式校验、元数据校验、字节码校验、符号引用校验)code

    • 验证阶段是很是重要的,但不是必须的,它对程序运行期没有影响,若是所引用的类通过反复验证,那么能够考虑采用-Xverifynone参数来关闭大部分的类验证措施,以缩短虚拟机类加载的时间。cdn

  2. 准备对象

    • 为类的静态变量(static)分配内存,并将其初始化为默认值
  3. 解析blog

    • 把类中的符号引用转换为直接引用内存

    • 符号引用就是一组符号来描述目标,能够是任何字面量。开发

    • 直接引用就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。

3.初始化

对类的静态变量,静态代码块执行初始化操做

我的博客文章连接 www.ccode.live/bertonlee/l…

欢迎关注

欢迎关注公众号“码上开发”,天天分享最新技术资讯

相关文章
相关标签/搜索