程序员技术干货

JVM系列:(五).class文件结构

2019-01-24  本文已影响3人  8b6370ea271c

原文链接:JVM系列:(五).class文件结构


各种不同平台的虚拟机与所有平台都统一使用的程序存储格式---字节码(ByteCode)是构成平台无关性的基石。

一 .class文件的来源

计算机只认识0和1,所以我们写的程序需要被编译器翻译成由0和1构成的二进制格式才能被计算机执行。

JVM只认识.class字节码,所以想要在JVM上运行的所有语言都需要编译为JVM能识别的字节码格式。

二 具体结构

2.1 结构

整个 class 文件的结构基本保持了我们编写 java 源码程序的上下结构,其本质上就是一张表,如果所示:

名称 数量 描述
magic 1 魔数
minor_version 1 次版本号
major_version 1 主版本号
constant_pool_count 1 常量池中常量的个数
constant_pool constant_pool_count-1 常量池
access_flags 1 访问标志
this_class 1 类索引
super_class 1 父类索引
interfaces_count 1 接口索引集合容量大小
interfaces interfaces_count 接口索引集合
fields_count 1 字段表集合容量大小
fields fields_count 字段表集合
methods_count 1 方法表集合容量大小
methods methods_count 方法表集合
attributes_count 1 属性表集合容量大小
attributes attributes_count 属性表集合

2.2 描述

三 总结

class文件是Java虚拟机执行引擎的数据入口,也是Java技术体系的基础支柱之一。了解class文件的结构对后面进一步了解虚拟机执行引擎有很重要的意义。


接下来我们将介绍:


扫码关注有惊喜
上一篇下一篇

猜你喜欢

热点阅读