class文件结构
来源:互联网 发布:世界五大宫之首 知乎 编辑:程序博客网 时间:2024/06/05 20:22
class文件是以8位字节为基础的二进制流,各数据项目按照顺序紧凑排列在class文件中,遇到8位字节以上空间的数据项时,会按照高位在前的方式分割位若干个8位字节进行存储。
文件格式采用类似于c语言结构体的结构存储,结构中只有两种数据类型,无符号数和表。
1.魔数和class文件版本
每个class文件头4个字节称为魔数,它的作用是确认文件是否能被虚拟机接受的class文件,它的值为 0xCAFEBABE
紧接着魔数的四个字节位从class文件的版本号,第5、6个字节是次版本号,第7、8个字节是主版本号,高版本的JDK能向下兼容低版本的class文件,但不能兼任高版本的文件,
2.常量池
紧接着主版本号之后的是常量池入口,它是class文件中与其他项目关联最多的数据类型,也是空间最大的项目之一,由于常量池中常量数量不固定,常量池入口放置一个数据表示常量池的容量。
常量池中主要存放两大类常量:字面量和符号引用,字面量如字符串,final常量值,符号引用包括类和接口的全限定名、子段的名称和描述符、方法的名称和描述符,这些符号引用解析时连接到具体的内存地址中。
3.访问标志
常量池结束后紧接着的两个字节代表访问标志,这个标志用于一些类或者接口层次的访问信息,如:class文件是类或者接口,是否为public类型,是否为abstract等
4.类索引,父类索引、接口索引集合
class文件由这三项数据确定这个类的继承关系,类索引用于确定该类的全限定名,父类索引用于确定该类父类的全限定名。接口索引描述该类实现了哪些接口。
- class文件结构-之一
- Java Class文件结构
- Class文件结构
- Class文件结构
- Java Class文件结构
- java class文件结构
- Java Class文件结构
- Class文件结构
- Class类文件结构
- JVM class文件结构
- class文件结构
- Java Class文件结构
- Class文件结构
- Class文件结构
- Class文件结构
- java class文件结构
- 4.1class文件结构
- class文件结构
- 【Data Struct】冒泡排序算法
- iptables 规则备份和恢复,firewalld防火墙机制
- ThinkPHP5.1 action变量路由&controller变量路由
- Linux基础(一):文件处理命令
- 泊松分布
- class文件结构
- 精选11道Java技术面试题并有答案
- Python machine learning Ridge Regression
- 2.UNIX 环境高级编程--UNIX标准及实现
- 如春天的轻轻微风般带你解读如何解析xml文件(二)
- 指定Webbrowser控件所用IE内核版本
- 数据结构实验三——线性表的操作(代码功能完整)
- 关于C++中函数类型的隐式转换
- 小程序——将Excel文件批量转换为csv格式