java类加载过程

类从加载到JVM中开始,到卸载共经历了七个阶段。

生命周期包括:加载、验证、准备、解析、初始化、使用和卸载
在这里插入图片描述

  1. 加载(Loading)

    1. 获取二进制字节流。
    2. 静态存储结构转化为方法区的运行时数据结构。
    3. 在Java堆中生成一个类对象,作为方法区的访问入口。
  2. 验证(Verification)

    1. 验证Calss文件的标识:魔数 Magic Number
    2. 验证Calss文件的主次版本号
    3. 验证常量池(常量类型、常量类型数据结构是否正确)
    4. Calss文件的每一个部分(字段表、方法表等是否正确)
    5. 元数据验证(父类验证、继承验证)
    6. 字节码验证(指令验证)
    7. 符合引用验证(通过符号引用是否能找到字段、方法、类)
  3. 准备(Preparation)

    1. 为类变量分配内存并且设置变量的初始化阶段
    2. 支队static类变量进行内存分配
    3. 类变量:一般称为静态变量
    4. 实例变量:当对象被实例化的时候,实例变量跟着变化,跟着销毁
  4. 解析

    1. 对符号引用进行解析
    2. 直接引用:指向目标的指针和偏移量
    3. 符号引用—》直接引用
    4. 主要涉及:类、方法、字段、方法等等
    5. 字段解析
    6. 类的解析
    7. 接口方法的解析
  5. 初始化

    1. 类的实例构造器 类的初始化
    2. 静态变量 静态块初始化 如果没有静态块静态变量则没有clinit
  6. 使用

  7. 卸载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值