JVM规范目录

@@TOC

1. 引言

1.1. 简史

1.2. Java 虚拟机

1.3. 规范的组织

1.4. 提要

1.5. 回馈

2. Java 虚拟机结构

2.1. Class 文件格式

2.2. 数据类型

2.3. 原始类型与值

2.3.1. 整型类型与整型值

2.3.2. 浮点类型、取值集合及浮点值

2.3.3. returnAddress 类型和值

2.3.4. boolean 类型

2.4. 引用类型与值

2.5. 运行时数据区

2.5.1. PC 寄存器

2.5.2. Java 虚拟机栈

2.5.3. 堆

2.5.4. 方法区

2.5.5. 运行时常量池

2.5.6. 本地方法栈

2.6. 栈帧

2.6.1. 局部变量表

2.6.2. 操作数栈

2.6.3. 动态链接

2.6.4. 方法正常调用完成

2.6.5. 方法异常调用完成

2.7. 对象的表示

2.8. 浮点算法

2.8.1. Java 虚拟机和 IEEE 754 中的浮点算法

2.8.2. 浮点模式

2.8.3. 数值集合转换

2.9. 特殊方法

2.10. 异常

2.11. 字节码指令集简介

2.11.1. 数据类型与 Java 虚拟机

2.11.2. 加载和存储指令

2.11.3. 运算指令

2.11.4. 类型转换指令

2.11.5. 对象创建与操作

2.11.6. 操作数栈管理指令

2.11.7. 控制转移指令

2.11.8. 方法调用和返回指令

2.11.9. 抛出异常

2.11.10. 同步

2.12. 类库

2.13. 公有设计,私有实现

3. JAVA虚拟机的编译

3.1. 示例的格式说明

3.2. 常量、局部变量的使用和控制结构

3.3. 算术运算

3.4. 访问运行时常量池

3.5. 更多的控制结构示例

3.6. 接收参数

3.7. 方法调用

3.8. 使用类实例

3.9. 数组

3.10. 编译 switch 语句

3.11. 使用操作数栈

3.12. 抛出异常和处理异常

3.13. 编译 finally 语句块

3.14. 同步

3.15. 注解

4. Class 文件格式

4.1. ClassFile 结构

4.2. 各种内部表示名称

4.2.1. 类和接口的二进制名称

4.2.2. 非全限定名

4.3. 描述符和签名

4.3.1. 语法符号

4.3.2. 字段描述符

4.3.3. 方法描述符

4.4. 常量池

4.4.1. CONSTANT_Class_info 结构

4.4.2. CONSTANT_Fieldref_info, CONSTANT_Methodref_info 和 CONSTANT_InterfaceMethodref_info 结构

4.4.3. CONSTANT_String_info 结构

4.4.4. CONSTANT_Integer_info 和 CONSTANT_Float_info 结构

4.4.5. CONSTANT_Long_info 和 CONSTANT_Double_info 结构

4.4.6. CONSTANT_NameAndType_info 结构

4.4.7. CONSTANT_Utf8_info 结构

4.4.8. CONSTANT_MethodHandle_info 结构

4.4.9. CONSTANT_MethodType_info 结构

4.4.10. CONSTANT_InvokeDynamic_info 结构

4.5. 字段

4.6. 方法

4.7. 属性

4.7.1. 自定义和命名新的属性

4.7.2. ConstantValue 属性

4.7.3. Code 属性

4.7.4. StackMapTable 属性

4.7.5. Exceptions 属性

4.7.6. InnerClasses 属性

4.7.7. EnclosingMethod 属性

4.7.8. Synthetic 属性

4.7.9. Signature 属性

4.7.9.1. Signatures

4.7.10. SourceFile 属性

4.7.11. SourceDebugExtension 属性

4.7.12. LineNumberTable 属性

4.7.13. LocalVariableTable 属性

4.7.14. LocalVariableTypeTable 属性

4.7.15. Deprecated 属性

4.7.16. RuntimeVisibleAnnotations 属性

4.7.16.1. The element_value structure

4.7.17. RuntimeInvisibleAnnotations 属性

4.7.18. RuntimeVisibleParameterAnnotations 属性

4.7.19. RuntimeInvisibleParameterAnnotations 属性

4.7.20. AnnotationDefault 属性

4.7.20.1. The target_info union
4.7.20.2. The type_path structure

4.7.21. RuntimeInvisibleTypeAnnotations 属性

4.7.22. AnnotationDefault 属性

4.7.23. BootstrapMethods 属性

4.7.24. MethodParameters 属性

4.8. 格式检查

4.9. Java 虚拟机代码约束

4.9.1. 静态约束

4.9.2. 结构化约束

4.10. Class 文件校验

4.10.1. 类型检查验证

4.10.1.1. Java 虚拟机工件的访问器
4.10.1.2. 验证型系统
4.10.1.3. 指令表示
4.10.1.4. 堆栈映射框架表示
4.10.1.5. 类型检查抽象和本机方法
4.10.1.6. 带代码的类型检查方法
4.10.1.7. 类型检查加载和存储指令
4.10.1.8. 受保护成员的类型检查
4.10.1.9. 类型检查说明

4.10.2. 类型推断验证

4.10.2.1. 类型推断的验证过程
4.10.2.2. 字节码验证器
4.10.2.3. long 和 double 类型的值
4.10.2.4. 实例初始化方法与创建对象
4.10.2.5. 异常和 finally

4.11. Java 虚拟机限制

5. 加载, 链接, 和初始化

5.1. 运行时常量池

5.2. Java虚拟机的启动

5.3. 创建和加载

5.3.1. 使用引导类加载器来加载类型

5.3.2. 使用用户自定义类加载器来加载类型

5.3.3. 创建数组类

5.3.4. 加载限制

5.3.5. 从 Class 文件中获取类

5.4. 链接

5.4.1. 验证

5.4.2. 准备

5.4.3. 解析

5.4.3.1. 类与接口解析
5.4.3.2. 字段解析
5.4.3.3. 方法解析
5.4.3.4. 接口方法解析
5.4.3.5. 方法类型与方法句柄解析
5.4.3.6. 调用点限定符解析

5.4.4. 访问控制

5.4.5. 方法覆盖

5.5. 初始化

5.6. 绑定本地方法实现

5.7. Java虚拟机的停止

6. Java 虚拟机指令集

6.1. 设定:“必须”的含义

6.2. 保留操作码

6.3. 虚拟机错误

6.4. 指令描述格式

6.5. 指令集

7. 操作码助记符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值