zoukankan      html  css  js  c++  java
  • [jvm] -- 类文件结构篇

    • 类文件结构

    结构图 

    • 魔数
      • 头四个字节,作用是确定这个文件是否为一个能被虚拟机接收的 Class 文件。
    • Class 文件版本
      • 第五和第六是次版本号,第七和第八是主版本号。
      • 高版本的 Java 虚拟机可以执行低版本编译器生成的 Class 文件,但是低版本的 Java 虚拟机不能执行高版本编译器生成的 Class 文件。
    • 常量池
      • 字面量(接近于 Java 语言层面的的常量概念)
        • 类和接口的全限定名
        • 字段的名称和描述符
        • 方法的名称和描述符
      • 符号引用(属于编译原理方面的概念)
    • 访问标志
      • 用于识别一些类或者接口层次的访问信息,包括:这个Class是类还是接口,是否为 public或者abstract 类型,如果是类的话是否声明为final 等等。
    • 当前类索引,父类索引与接口索引集合
      • 类索引用于确定这个类的全限定名
      • 父类索引用于确定这个类的父类的全限定名
      • 接口索引集合用来描述这个类实现了哪些接口,这些被实现的接口将按implents(如果这个类本身是接口的话则是extends)后的接口顺序从左到右排列在接口索引集合中。
    • 字段表集合
      • 字段表(field info)用于描述接口或类中声明的变量。
    • 方法表集合
    • 属性表集合
    明明可以靠才华吃饭,非要靠脸~
  • 相关阅读:
    乐理学习
    hashtable
    vim配置
    SSH & Git
    Java实现单向链表反转
    Java实现二叉树遍历
    Mysql主从配置
    使用VirtualBox虚拟机搭建局域网
    Nginx配置try_files实践一
    Maven package打包webapp项目遇到的问题
  • 原文地址:https://www.cnblogs.com/lycsmzl/p/13213625.html
Copyright © 2011-2022 走看看