第一章 引言(略)
第二章 Java虚拟机结构
2.1 class文件格式
中立:平台无关性,实现依赖于二进制格式的数据形式把文件持久化在class文件内,且精确的定义了类与接口的表现形式,尤其是与平台相关的模板文件格式上的一些细节惯例,比如SPARC平台上数字以Big-Endian 高位的字节存储在内存中的低地址值处形式存储,在X86平台上数字则是以Little-Endian 高位的字节存储在内存中的高地址值处形式存储的,如果不强制统一字节序的话,同一个class文件的二进制形式放在不同平台上就可能以不同方式解读。
2.2 数据类型
原始类型、引用类型 原始值 、引用值
2.3 原始类型与值
数值类型
整数类型 (integral type)
byte类型:值为8位有符号二进制补码整数,默认值为0
short类型:值为16位有符号二进制补码整数默认值为0
int类型:值为32位有符号二进制补码整数默认值为0
long类型:值为64位有符号二进制补码整数默认值为0
char类型:值为使用16位无符号整数表示的、指向基本多文种平面 (basic multilingual plane BMP)的Unicode码点,以UTF-16编码,默认值为Unicode的null码点,’\u0000’
浮点类型(floating-point type)
float类型:值为单精度浮点数集合中的元素,或者是单精度扩展指数集合中的元素,默认值为正数0。
double类型:值为双精度浮点数集合中的元素,或者双精度扩展指数集合中的元素,默认值为正数0。
boolean类型
boolean类型值为布尔值true或者false,默认值为false。
returnAddress类型
returnAddress类型是指向某个操作码opcode的指针,此操作码与Java虚拟机指令相对应。在虚拟机支持的所有原始类型中,只有returnAddress类型是不能直接与Java语言中的数据结构相对应的
2.4 引用类型与值
2.5 运行时数据区
2.6 栈帧
2.7 对象的表示
2.8 浮点算法
2.9 特殊方法
3.0 异常
3.1 字节码指令集简介
3.2 类库
3.3 共有设计、私有实现
第三章 虚拟机编译器
实例的格式说明
常量、局部变量和控制结构的使用
算术运算
访问运行时常量池
与控制结构有关的更多实例
接收参数
方法调用
使用类举例
数组
编译Switch语句
使用操作数栈
抛出异常和处理异常
编译finally语句块
同步
注解
第四章 class文件格式
classFile文件结构
各种名称的内部表示形式
描述符
常量池
字段
方法
属性
个时间差
Java虚拟机代码约束
class文件校验
第五章 加载、链接与初始化
运行时常量池
虚拟机启动
创建和加载
链接
初始化
绑定本地方法实现
Java虚拟机退出
第六章 Java虚拟机指令集
设定"必须"的含义
保留操作码
虚拟机错误
指令描述格式
指令集描述