目录 1
第1章 Java虚拟机综述 1
1.1 什么是Java虚拟机 1
1.2 由Java程序生成(实际机器的)可执行代码的过程 1
1.3 Java虚拟机规范 2
1.4 采用Java虚拟机的意义 2
1.5 为什么要学习Java虚拟机 4
第2章 Java虚拟机的体系结构 5
2.1 支持的数据类型 5
2.2 寄存器 6
2.3 局部变量 6
2.4 操作数栈 6
2.5 运行环境 7
2.8 Java指令集 8
2.7 方法区 8
2.6 无用单元收集堆 8
2.9 限制 9
第3章 类文件格式 10
3.1 格式 10
3.2 签名 13
3.3 常数池 14
3.4 域 18
3.5 方法 19
3.6 属性 20
第4章 虚拟机指令集 26
4.1 指令的格式 26
4.2 把常数压入栈内 26
4.3 把局部变量装载到栈内 29
4.4 把栈中的值存储到局部变量内 32
4.6 管理数组 35
4.5 使用更宽的索引进行装载、存储和增量 35
4.7 栈指令 42
4.8 数学指令 44
4.9 逻辑指令 50
4.10 转换操作 53
4.11 控制转移操作 56
4.12 函数返回 64
4.13 表跳转 65
4.14 操作对象域 67
4.15 调用方法 69
4.16 异常处理 71
4.17 其他对象操作 72
4.18 监视器 73
5.1 源程序及其编译后的类文件 74
第5章 类文件格式与指令分析举例 74
5.2 类文件格式中的版本信息 75
5.3 常数池 75
5.4 对hello类结构的描述 78
5.5 属性表 79
5.6 代码 80
附录A 优化 83
A.1 常数池解析 83
A.2 把常数压入栈内(quick变体) 84
A.3 管理数组(quick变体) 84
A.4 操作对象域(quick变体) 85
A.5 调用方法(quick变体) 88
A.6 其他对象操作 91
附录B 指令集索引 93
附录C Java虚拟机词汇表 95