深入理解JVM(八)——类加载的时机

本文深入探讨了JVM中的类加载过程,详细解释了类生命周期的7个阶段,包括加载、验证、准备、解析和初始化等。重点阐述了类加载的5个主要步骤及其顺序,并详细讨论了初始化开始的4种触发条件,如new、getstatic、putstatic、invokestatic指令。此外,文章还区分了主动引用和被动引用的概念,并提供了几个示例来说明何时会触发类的初始化。最后,简单介绍了接口的初始化规则。
摘要由CSDN通过智能技术生成

这里写图片描述

类的生命周期

一个类从加载进内存到卸载出内存为止,一共经历7个阶段:
加载——>验证——>准备——>解析——>初始化——>使用——>卸载

其中,类加载包括5个阶段:
加载——>验证——>准备——>解析——>初始化

在类加载的过程中,以下3个过程称为连接:
验证——>准备——>解析

因此,JVM的类加载过程也可以概括为3个过程:
加载——>连接——>初始化

C/C++在运行前需要完成预处理、编译、汇编、链接;而在Java中,类加载(加载、连接、初始化)是在程序运行期间完成的。
在程序运行期间进行类加载会稍微增加程序的开销,但随之会带来更大的好处——提高程序的灵活性。Java语言的灵活性体现在它可以在运行期间动态扩展,所谓动态扩展就是在运行期间动态加载动态连接

类加载的时机

1. 类加载过程中每个步骤的顺序

我们已经知道,类加载的过程包括:加载、连接、初始化,连接又分为:验证、准备、解析,所以说类加载一共分为5步:加载、验证、准备、解析、初始化。

其中加载、验证、准备、初始化的开始顺序是依次进行的,这些步骤开始之后的过程可能会有重叠。
而解析

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值