虚拟机类加载机制总结

本文详细介绍了Java虚拟机的类加载机制,包括加载、验证、准备、解析和初始化5个阶段,以及类加载的生命周期。重点讨论了类加载的触发时机,主动引用与被动引用的区别,并举例说明。同时,阐述了类加载过程中的各个步骤,如加载阶段的字节流获取、验证阶段的安全检查、准备阶段的静态变量分配等。
摘要由CSDN通过智能技术生成

简介

虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。

 

类的生命周期

在这里插入图片描述
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括如下 7 个阶段:

  • 加载(Loading)
  • 验证(Verification)
  • 准备(Preparation)
  • 解析(Resolution)
  • 初始化(Initialization)
  • 使用(Using)
  • 卸载(Unloading)

其中,验证、准备、解析这 3 个部分统称为链接(Linking)

我加粗的这前五个阶段就是类加载的过程。

但有一点需要注意的是,加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后再开始,这是为了支持 Java 语言的运行时绑定&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值