JVM学习第一天-类加载器解析与阶段分解

JVM学习第一天-类加载器解析与阶段分解

类加载

在Java代码中,类型的加载,连接与初始化过程都是在程序运行期间完成的。

  • 类型理解成Class。;

  • 类型绝大多数情况时编写好的如object类等。

  • 类型可以在动态生成出来如动态代理等。

  • 程序运行期间完成换句话来说是Runtiem(运行时语言)概念。

  • 类型的加载最常见的一种情况是将存在的Class文件从磁盘上、硬盘上面给加载到内存里面。

  • 类型的链接将类与类之间的关系确定好,对于字节码处理以及验证也是在加载连接完成的,字节码可以用16进制工具可以人为修改。

  • 类型的初始化对于类型里面静态的变量进行初始化赋值。

  • 类型的整个处理最终产物和功能和规范要求一直就可以。

提供了更大的灵活性,增加了更多的可能性。

类加载器深入剖析

java里面每一个类型最终数据结构会被纳入到JVM管理的内存当中,由类加载器做到。

  • Java虚拟机与程序的生命周期。
    • java虚拟机是一个进程
  • 在如下几种情况下,Java虚拟机将结束生命周期
    • 执行了System.exit()方法
    • 程序正常执行结束
    • 程序在执行过程中遇到了异常或错误而异常终止
    • 由于操作系统出现错误而导致Java虚拟机进程终止

类加载器并不需要等到某个类被“首次主动使用”时再加载它

类的加载、连接、初始化

  • 加载:查找并加载类的二进制数据
  • 连接
    • 验证:确保被加载的类的正确性
    • 准备:为类的静态变量分配内存,并将其初始化默认值
    • 解析:把类中的符号引用转换为直接引用
  • 初始化:为类的静态变量赋予正确的初始值
发布了5 篇原创文章 · 获赞 1 · 访问量 197

猜你喜欢

转载自blog.csdn.net/weixin_44281696/article/details/104123310