jvm必知必会-类的生命周期图文详解

类的生命周期描述了一个从加载、使用到卸载的过程;
image-20240301175452355

而其中的 连接 部分又分为一下三个阶段:

  • 验证
  • 准备
  • 解析
6.1 加载阶段

Loading阶段第一步是 类加载器 会根据类全限定名通过不同的渠道以二进制流的方式获取字节码信息,程序员可以使用Java代码扩展不同的渠道。

比如通过

  • 磁盘上的字节码文件
  • 动态代理生成的字节码文件
  • 早期通过网络传输使用的Applet技术等;

类加载完成类的加载之后,Java虚拟机会将字节码中的信息保存到方法区中。生成一个InstanceKlass对象,保存类的所有信息,也包含了实现特定功能的信息,比如实现多态所需的 虚方法表

image-20240301175520461

与此同时,Java虚拟机还会再 中生成一份方法区中数据类似的java.lang.Class对象。这样做的目的是在Java代码中去获取类的信息以及存

相关推荐

  1. Linux中mount命令

    2024-06-17 22:14:02       59 阅读
  2. 10个SQL聚合函数

    2024-06-17 22:14:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 22:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 22:14:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 22:14:02       82 阅读
  4. Python语言-面向对象

    2024-06-17 22:14:02       91 阅读

热门阅读

  1. R-Tree

    2024-06-17 22:14:02       24 阅读
  2. 安卓开发serizeable和parcelble的区别

    2024-06-17 22:14:02       31 阅读
  3. 深入探索Spring Boot:原理与实践

    2024-06-17 22:14:02       24 阅读
  4. CSS基础

    CSS基础

    2024-06-17 22:14:02      29 阅读
  5. Android WindowFeature小探究

    2024-06-17 22:14:02       30 阅读
  6. css预处理是什么?作用是什么?

    2024-06-17 22:14:02       29 阅读
  7. 一千题,No.0064(螺旋矩阵)

    2024-06-17 22:14:02       25 阅读
  8. MinIO:构建未来的开源对象存储解决方案

    2024-06-17 22:14:02       28 阅读
  9. LeetCode-day11-2813. 子序列最大优雅度

    2024-06-17 22:14:02       30 阅读
  10. Android Root全教程

    2024-06-17 22:14:02       26 阅读
  11. Django 使用Apscheduler执行定时任务

    2024-06-17 22:14:02       30 阅读
  12. git入门

    git入门

    2024-06-17 22:14:02      34 阅读