zoukankan      html  css  js  c++  java
  • jvm——class类文件的结构

    class类文件并不一定以磁盘的形式存在,也可以是由类加载器直接生成的二进制流,他其实是一种数据结构,类似于c语言结构体,这种数据结构只有两种数据类型:无符号数和表。

    1.魔数:类似于文件拓展名,CAFEBABE表示这个是一个class文件

    2.版本号:前两个字节是次版本号,后两个字节是主版本号,虚拟机拒绝执行超过其版本号的class文件

    3.常量池计数值:0x0016表示有21项常量值,索引1~21,第0 项表示当某数据不引用任何一个常量池项目时索引为0

    4.常量池包括字面量和符号引用。07表示第一个常量池标志位,07表示这是一个类的特征引用,0020指向第二个常量

    5.访问标志位,表达这个是类还是接口;public?abstract?final?

    6.类索引 父索引 接口索引

    7.字段表:描述接口或类中声明的变量,不包括局部变量

    8.方法表:0002 表示有两个方法

    9.Code属性:主要放字节码指令

    一种划分的方式可以说class文件主要分为Code和元数据,其中code是上面第9项,其余均属于元数据

  • 相关阅读:
    软件工程概论-用户登录界面
    2016.11.25异常处理
    2016.11.18多态
    2016.11.11继承与接口
    11.6数组
    10.28字符串加密等
    python 读写文件
    python可变的类型、不可变的类型
    python 字典练习 记录学生是否交作业的小程序
    python字典
  • 原文地址:https://www.cnblogs.com/gaoquanquan/p/10922159.html
Copyright © 2011-2022 走看看