JVM类加载过程

本文详细介绍了Java虚拟机的类加载过程,包括加载、连接、验证、准备、解析和初始化六个阶段。重点讨论了类加载器如何将类文件加载到内存,以及在不同阶段对类数据的处理,特别是静态变量的初始化和符号引用的解析。通过理解这些概念,有助于深入掌握Java运行时的内部机制。
摘要由CSDN通过智能技术生成

在这里插入图片描述

  1. 加载: 将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入,这个过程需要类加载器参与。

  2. 连接: 将java类的二进制代码合并到JVM的运行状态之中

    • 验证:确保加载的类信息符合JVM规范,没有安全方面的问题

    • 准备:在方法区为类变量分配内存空间并设置类中变量的初始值

      注意: 如果是final修饰的变量,会在准备阶段就将变量初始化为value值;如果没有final修饰,那么就会在准备阶段赋默认值,在初始化阶段赋值为value。

    • 解析:将符号引用替换为直接引用

  3. 初始化: 通过执行类构造器的方法为类进行初始化。方法是在编译阶段由编译器自动收集类中静态语句块和变量的赋值操作组成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值