转载至: https://www.jb51.net/books/581230.html
下载链接: 点我一键跳转到 下载链接
下载声明: 本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
本书完整而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析,深刻揭示Java虚拟机的工作原理。同时,书中不仅完整地讲述了由Java SE 8所引入的新特性,例如对包含默认实现代码的接口方法所做的调用,还讲述了为支持类型注解及方法参数注解而对class文件格式所做的扩展,并阐明了class文件中各属性的含义,以及字节码验证的规则。
译者序
前 言
第1章 引言1
1.1 简史1
1.2 Java虚拟机2
1.3 各章节摘要2
1.4 说明3
1.5 反馈3
第2章 Java虚拟机结构4
2.1 class文件格式4
2.2 数据类型5
2.3 原始类型与值5
2.3.1 整数类型与整型值6
2.3.2 浮点类型、取值集合及浮点值6
2.3.3 returnAddress类型和值8
2.3.4 boolean类型8
2.4 引用类型与值9
2.5 运行时数据区9
2.5.1 pc寄存器9
2.5.2 Java虚拟机栈10
2.5.3 Java堆10
2.5.4 方法区11
2.5.5 运行时常量池11
2.5.6 本地方法栈12
2.6 栈帧12
2.6.1 局部变量表13
2.6.2 操作数栈14
2.6.3 动态链接14
2.6.4 方法调用正常完成15
2.6.5 方法调用异常完成15
2.7 对象的表示15
2.8 浮点算法15
2.8.1 Java虚拟机和IEEE 754中的浮点算法15
2.8.2 浮点模式16
2.8.3 数值集合转换17
2.9 特殊方法18
2.10 异常19
2.11 字节码指令集简介20
2.11.1 数据类型与Java虚拟机21
2.11.2 加载和存储指令23
2.11.3 算术指令24
2.11.4 类型转换指令25
2.11.5 对象的创建与操作27
2.11.6 操作数栈管理指令27
2.11.7 控制转移指令27
2.11.8 方法调用和返回指令28
2.11.9 抛出异常28
2.11.10 同步28
2.12 类库29
2.13 公有设计、私有实现30
第3章 Java虚拟机编译器31
3.1 示例的格式说明31
3.2 常量、局部变量和控制结构的使用32
3.3 算术运算36
3.4 访问运行时常量池36
3.5 与控制结构有关的更多示例37
3.6 接收参数40
3.7 方法调用41
3.8 使用类实例43
3.9 数组44
3.10 编译switch语句46
3.11 使用操作数栈48
3.12 抛出异常和处理异常48
3.13 编译finally语句块51
3.14 同步54
3.15 注解55
第4章 class文件格式56
4.1 ClassFile结构57
4.2 各种名称的内部表示形式61
4.2.1 类和接口的二进制名称61
4.2.2 非限定名61
4.3 描述符62
4.3.1 语法符号62
4.3.2 字段描述符62
4.3.3 方法描述符63
4.4 常量池64
4.4.1 CONSTANT_Class_info结构65
4.4.2 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_InterfaceMethodref_info结构66
4.4.3 CONSTANT_String_info结构67
4.4.4 CONSTANT_Integer_info和CONSTANT_Float_info结构67
4.4.5 CONSTANT_Long_info和CONSTANT_Double_info结构68
4.4.6 CONSTANT_NameAnd-Type_info结构69
4.4.7 CONSTANT_Utf8_info结构70
4.4.8 CONSTANT_MethodHandle_info结构72
4.4.9 CONSTANT_MethodType_info结构73
4.4.10 CONSTANT_Invoke-Dynamic_info结构74
4.5 字段74
4.6 方法76
4.7 属性78
4.7.1 自定义和命名新的属性82
4.7.2 ConstantValue属性82
4.7.3 Code属性83
4.7.4 StackMapTable属性86
4.7.5 Exceptions属性92
4.7.6 InnerClasses属性93
4.7.7 EnclosingMethod属性95
4.7.8 Synthetic属性96
4.7.9 Signature属性96
4.7.10 SourceFile属性100
4.7.11 SourceDebugExtension属性101
4.7.12 LineNumberTable属性102
4.7.13 LocalVariableTable属性103
4.7.14 LocalVariableTypeTable属性104
4.7.15 Deprecated属性106
4.7.16 RuntimeVisibleAnnota-tions属性106
4.7.17 RuntimeInvisible-Annotations属性110
4.7.18 RuntimeVisibleParameterAnnotations属性111
4.7.19 RuntimeInvisiblePara-meterAnnotations属性112
4.7.20 RuntimeVisibleTypeAnnotations属性114
4.7.21 RuntimeInvisibleType-Annotations属性124
4.7.22 AnnotationDefault属性125
4.7.23 BootstrapMethods属性126
4.7.24 MethodParameters属性127
4.8 格式检查129
4.9 Java虚拟机代码约束129
4.9.1 静态约束130
4.9.2 结构化约束132
4.10 class文件校验135
4.10.1 类型检查验证136
4.10.2 类型推导验证200
4.11 Java虚拟机限制206
第5章 加载、链接与初始化208
5.1 运行时常量池208
5.2 虚拟机启动210
5.3 创建和加载211
5.3.1 使用引导类加载器来加载类型212
5.3.2 使用用户自定义类加载器来加载类型212
5.3.3 创建数组类213
5.3.4 加载限制214
5.3.5 从class文件表示得到类214
5.4 链接215
5.4.1 验证216
5.4.2 准备216
5.4.3 解析217
5.4.4 访问控制225
5.4.5 方法覆盖225
5.5 初始化226
5.6 绑定本地方法实现228
5.7 Java虚拟机退出228
第6章 Java虚拟机指令集229
6.1 设定:“必须”的含义229
6.2 保留操作码229
6.3 虚拟机错误230
6.4 指令描述格式230
6.5 指令集描述232
第7章 操作码助记符320
附录A Limited License Grant327
沙发 来自 石头 2020-09-22 09:01 回复 下载一下
#2楼 来自 test 2020-12-14 19:34 回复 感谢
#11楼 来自 333 2022-01-27 16:27 回复 aaa
#12楼 来自 aa 2022-02-09 14:40 回复 dd
#13楼 来自 大四 2022-02-12 00:12 回复 大四
#14楼 来自 aa 2022-02-27 14:21 回复 下载一下
#15楼 来自 男男女女 2022-05-19 17:18 回复 来了来了
#16楼 来自 二二 2022-07-14 16:34 回复 下载一下,感谢
#17楼 来自 juning 2022-08-13 10:07 回复 下载一下 谢谢老哥提供资源
#18楼 来自 试试 2022-08-31 09:45 回复 下载一下
#19楼 来自 AA 2022-10-08 09:49 回复 AAAAA
#20楼 来自 盖茨 2022-10-15 16:01 回复 dd
#21楼 来自 石头子 2023-01-26 18:28 回复 下载一下
#22楼 来自 牛隔壁 2023-01-28 03:02 回复 down
#23楼 来自 字 2023-02-03 11:08 回复 感谢
#24楼 来自 xxx 2023-02-13 19:57 回复 download
#25楼 来自 haha 2023-03-28 09:40 回复 非常感谢
#26楼 来自 test2 2023-07-08 14:30 回复 下载一下,感谢
#27楼 来自 1 2023-07-14 07:26 回复 1