• Class文件结构


    本文参考《深入理解虚拟机》一书

    平台无关性和语言无关性

    虚拟机的存在帮助我们实现了平台无关性和语言无关性,平台无关性我们都知道,在多种操作系统中,我们可以运行相同的程序。语言无关性是因为多种编程语言经过编译后形成统一的能够被虚拟机识别的Class文件。

    Class文件的结构

    任何一个Class文件都存储这对象的类或者接口的信息,class文件本质上就是一张表

    class文件的格式是固定的,根据上面这张表可以分析出class文件结构是什么样子的,class文件以8字节为单位进行存储。

    1.魔数和版本号

    前四个字节是魔数,用来作为标识这是一个class文件,后面的四个字节分别是版本号和副版本号。

    2.常量池

    紧接着版本号的是常量池入口,存储着常量池中的数据。

    3.访问标志

    判断访问的是类还是接口,是什么类型等。

    4.类索引、父索引、和接口索引

    判断类的继承关系

    5.字段表集合

    描述接口或者类中声名的变量,仅包括类级变量和实例级变量。

    6.方法表集合

    记录对方法的描述

    7.属性表集合

    字段表、class文件、方法表都有自己的属性表集合。用来描述某些场景专有的信息。

  • 相关阅读:
    PHP错误报告级别及调整方法
    使用微妙计算PHP脚本执行时间
    修改PHP的默认时区
    Rabbimq 安装过程,还有踩得坑!centos 安装
    "services "kubernetes-dashboard" not found"
    转载
    安装php rabbitmq扩展,继上一篇安装Rabbitmq
    php hash_file
    composer 安装
    php 朴韩屏
  • 原文地址:https://www.cnblogs.com/yanqingguo/p/9746660.html
Copyright © 2020-2023  润新知