深入理解JVM:类文件结构

来自Wikioe
Eijux讨论 | 贡献2020年10月25日 (日) 00:54的版本 →‎无关性的基石
跳到导航 跳到搜索


无关性的基石

   代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。


  • 无关性:即与平台无关,“一次编写,到处运行(Write Once,Run Anywhere)”;
  • 无关性的基石:字节码(Byte Code):
    各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式;


Java虚拟机不与包括Java语言在内的任何程序语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。

Java虚拟机提供的语言无关性.jpg

Class类文件的结构






魔数与Class文件的版本

常量池

访问标志

类索引、父类索引与接口索引集合

字段表集合

方法表集合

属性表集合

字节码指令简介

6.4.1 字节码与数据类型 6.4.2 加载和存储指令 6.4.3 运算指令 6.4.4 类型转换指令 6.4.5 对象创建与访问指令 6.4.6 操作数栈管理指令 6.4.7 控制转移指令 6.4.8 方法调用和返回指令 6.4.9 异常处理指令 6.4.10 同步指令

公有设计,私有实现

Class文件结构的发展