类加载的时机

目录

类的生命周期

类加载过程中初始化阶段开始的时机

被动引用Demo

接口的加载时机


类的生命周期

类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下7个阶段:加载、验证、准备、解析、初始化、使用、卸载。验证、准备、解析3个阶段统称为连接

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

类加载过程中初始化阶段开始的时机

Java虚拟机规范没有强制约束类加载过程的第一阶段(加载)什么时候开始,但对于初始化阶段,有着严格的规定。有且仅有5种情况必须立即对类进行初始化。

在遇到new、putstatic、getstatic、invokestatic 字节码指令时如果类尚未初始化则需要先触发其初始化。对类进行反射调用时如果类还没有初始化,则需要先触发其初始化。初始化一个类时如果其父类还没有初始化则需要先初始化父类。虚拟机启动时用于需要指定一个包含main()方法的主类,虚拟机会先初始化这个主类。这些场景

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆驼整理说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值