类的生命周期

  • 加载:通过类的完全限定名,查找此类的二进制字节码文件,利用字节码文件创建Class对象

  • 验证:验证类是否符合JVM规范,安全行检查

    • 文件格式验证、元数据验证、字节码验证。格式检查如:文件格式是否错误、语法是否错误、字节码是否合规

    • 符号引用验证:Class文件在其常量池会通过字节码记录自己将要使用的其他类或者方法,检查它们是否存在

  • 准备:为类的静态变量分配内存、设置初始值

    • static:分配空间,设置默认值。但赋值在初始化阶段完成

    • static 变量是final的基本类型:因为值已经确定,在分配空间的同时进行赋值

    • static变量是final类型的引用类型:赋值在初始化阶段完成

  • 解析:将常量池中的间接引用转换为直接引用。不再引用行数,而是使用指针直接指向方法。

  • 初始化:初始化静态变量和静态代码块

    • 初始化一个类的时候,其父类尚未初始化,则优先初始化其父类

    • 如果同时包含多个静态变量,则按照自上而下的顺序依次执行

  • 使用:程序代码使用

  • 卸载:程序代码退出、异常、结束等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值