“深入理解JVM:类文件结构”的版本间差异
跳到导航
跳到搜索
(→无关性的基石) |
|||
第2行: | 第2行: | ||
== 无关性的基石 == | == 无关性的基石 == | ||
<pre> | |||
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 | |||
</pre> | |||
* 无关性:即与平台无关,“一次编写,到处运行(Write Once,Run Anywhere)”; | * 无关性:即与平台无关,“一次编写,到处运行(Write Once,Run Anywhere)”; | ||
* 无关性的基石:字节码(Byte Code): | * 无关性的基石:字节码(Byte Code): |
2020年10月25日 (日) 00:54的版本
无关性的基石
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。
- 无关性:即与平台无关,“一次编写,到处运行(Write Once,Run Anywhere)”;
- 无关性的基石:字节码(Byte Code):
- 各种不同平台的Java虚拟机,以及所有平台都统一支持的程序存储格式;
Java虚拟机不与包括Java语言在内的任何程序语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集、符号表以及若干其他辅助信息。
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 同步指令