• 我要写整个中文互联网界最牛逼的JVM系列教程 | 「类加载子系统」章节:类的加载过程之二:Linking


    经历过类的加载过程的第一个阶段(即加载阶段)以后,接下来,我们就要来看一下类的加载过程的第二个阶段了,即Linking阶段,翻译过来便是链接阶段。

    链接阶段

    一说到这个Linking阶段,我希望大家能立马知道的是它又被分成了如下三个具体的子阶段。

    1. 验证(Verify)。
    2. 准备(Prepare)。
    3. 解析(Resolve)。

    自然而然,接下来我就要来分别给大家详细介绍以上三个具体的子阶段了。这里,我们就不妨先来看一下验证这一阶段。

    验证(Verify)

    经历过Loading阶段以后,我想大家已经知道了一个事实,即在内存中生成了一个代表被加载类的java.lang.Class对象,并且它还被作为了方法区这个类的各种数据的访问入口。明确了这个事实之后,接下来我们就要来看一下验证这一阶段它到底都做了些什么事情了。

    首先,大家要知道的一点是验证阶段它的目的是在于确保Class文件的字节流中包含的信息符合当前虚拟机要求,并还要保证被加载类的正确性,以及不会危害虚拟机自身安全。

    然后,大家还要知道的一点就是验证这一阶段主要包括四种验证,它们分别是:

    1. 文件格式验证。
    2. 元数据验证。
    3. 字节码验证。
    4. 符号引用验证。

    至于每种格式验证的具体细节,这里我就不展开给大家细说了,因为这并不是我们要学习的重点。

    还记得我之前在概述类加载器子系统的作用时说过的类加载器子系统加载的Class文件要在

  • 相关阅读:
    TodoMVC 与 Thymeleaf 和 HTMX
    日志平台搭建第五章:Linux安装Kafka
    注意力机制 -自注意力和位置编码
    【Linux】VI和VIM命令详解
    Web网页实现多路播放RTSP视频流(使用WebRTC)
    小林coding图解操作之硬件结构
    C#面试题 1
    企业信息化的供给侧改革
    Springboot3 + knife4j(springdoc) 框架整合
    ONLYOFFICE8.1版本桌面编辑器测评
  • 原文地址:https://blog.csdn.net/yerenyuan_pku/article/details/127395189