第1章 虚拟机架构 1
1.1 Java与Java虚拟机 1
1.1.1设计背景 1
1.1.2 Java技术栈的组成要素 2
1.1.3 Java字节码 3
1.2 Java虚拟机架构 5
1.3实例:J语言及其编译 7
1.3.1 J语言语法 7
1.3.2 栈式计算机 13
1.3.3 J字节码 17
1.3.4 J语言编译到J字节码 19
1.4实例:J虚拟机 23
1.4.1字节码加载子系统 23
1.4.2字节码验证器 24
1.4.3解释执行引擎 27
第2章 类加载器 30
2.1实例:Java的类加载 30
2.2类的二进制定义 32
2.2.1常量池 34
2.2.2接口 36
2.2.3字段 37
2.2.4方法 37
2.2.5属性 38
2.3方法区 41
2.3.1代码区 41
2.3.2运行时常量池 45
2.3.3类辅助数据结构 47
2.4类装载 49
2.4.1递归下降装载 50
2.4.2接口的装载 57
2.4.3数组的装载 57
2.4.4基本类的装载 59
2.5验证 61
2.5.1为什么要进行验证 61
2.5.2验证的目标 63
2.5.3实例:验证规则 63
2.5.4结构化约束 68
2.5.5类型推导 69
2.6准备 75
2.6.1静态字段的准备 76
2.6.2非静态字段的准备 77
2.6.3虚方法表 80
2.7解析 86
2.7.1实例:类的解析 86
2.7.2类的解析 88
2.7.3字段的解析 89
2.7.4方法的解析 91
2.7.5 接口方法的解析 98
2.7.6字符串常量的解析 100
2.7.7常量池其他表项的解析 101
2.8 初始化 101
2.8.1类初始化方法 102
2.8.2类初始化算法 103
2.9类加载各阶段的执行顺序 110
2.9.1急切策略和惰性策略 111
2.9.2类解析和类初始化的耦合性 113
2.10自定义类加载器 114
2.10.1独立加载模型 116
2.10.2双亲委派模型 118
2.11实例:类加载器的典型应用 123
2.11.1动态代理 124
2.11.2热替换 133
第3章 执行引擎 139
3.1栈帧结构 139
3.2调用规范 140
3.3执行引擎架构 141
3.3.1序列式架构 142
3.3.2跳转表架构 143
3.4执行引擎实现 145
3.4.1常量加载指令 145
3.4.2数据加载指令 147
3.4.3数据存储指令 149
3.4.4栈操作指令 151
3.4.5数学运算指令 152
3.4.6数值转换指令 155
3.4.7比较运算指令 157
3.4.8控制转移指令 159
3.4.9引用指令 176
3.4.10扩展与虚拟机保留指令 185
3.5本地方法执行引擎 187
3.6 可重入方法 194
3.7汇编模板 198
第4章 本地方法接口 201
4.1实例:Java本地方法 201
4.2方法绑定 202
4.2.1本地方法的数据结构 203
4.2.2动态库加载 205
4.2.3动态绑定 206
4.2.4静态绑定 209
4.3本地方法拦截 213
4.3.1拦截机制 213
4.3.2 耦合性 216
4.3.3反射 217
4.4本地方法回调Java方法 218
4.4.1 JNI回调函数 220
4.4.2本地方法栈帧 223
第5章 异常处理 226
5.1实例:Java异常处理 226
5.2异常栈 228
5.3异常表 236
5.4栈回滚 243
5.5本地方法异常 247
5.6其他问题 250
5.6.1隐式异常 250
5.6.2异常处理与多线程 253
5.6.3执行效率 254
第6章 堆和垃圾收集 255
6.1实例:对象与垃圾 255
6.1.1语法垃圾与语义垃圾 256
6.1.2内存泄漏 257
6.2堆 258
6.2.1堆数据结构 258
6.2.2堆分配接口 259
6.3存储布局 259
6.3.1对象的存储布局 259
6.3.2类的存储布局 263
6.3.3数组的存储布局 264
6.4垃圾收集 265
6.4.1根节点 266
6.4.2复制收集 270
6.4.3终结 276
6.4.4垃圾收集的触发 280
6.5本地方法和垃圾收集 281
6.5.1局部和全局引用 281
6.5.2对象引用相关JNI函数的实现 283
6.6其他问题 285
6.6.1多线程与垃圾收集 285
6.6.2无中断垃圾收集 289
6.6.3类型标记 291
第7章 多线程 293
7.1线程语义模型 293
7.1.1线程方法 293
7.1.2线程状态 294
7.1.3实例:线程中断 297
7.2管程 303
7.2.1管程数据结构 303
7.2.2接口与实现 307
7.2.3管程指令 314
7.2.4管程与对象 316
7.3多线程的实现 318
7.3.1线程数据结构 319
7.3.2创建线程对象 321
7.3.3启动 323
7.3.4让出 325
7.3.5睡眠 325
7.3.6 中断 327
7.3.7停止、挂起和继续 335
7.3.8原子性和可见性 337
7.3.9 线程与信号 338
7.4多线程与虚拟机其他子系统的交互 342
7.4.1全局数据结构与锁 343
7.4.2类初始化 345
7.4.3垃圾收集 350
第8章 调试 357
8.1调试器架构 357
8.1.1客户端-服务器架构 358
8.1.2 JDWP调试协议 359
8.1.3数据类型 360
8.1.4实例:断点 361
8.2调试代理 364
8.2.1通信模块 365
8.2.2执行引擎模块 366
8.2.3对象管理模块 370
8.2.4事件处理模块 371
8.3实例:jdb调试器 376
8.4调试的其他问题 384
8.4.1薛定谔困境 384
8.4.2调试与安全性 386
8.4.3实例:JVM渗透 387
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《Spring Cloud微服务架构实战》陈韶健著 2020
- 《深入浅出 Java虚拟机设计与实现》华保健著 2020
- 《宋氏姐妹在重庆》杨耀健著 1986
- 《红叶词话》王科健著 2016
- 《治史唯真》陈铁健著 2018
- 《教你一生受用的沟通方式》(日)福田健著;孙欣欣译 2013
- 《测谎 说谎不是好干部 反腐纪实小说》李慧涛,李厚健著 2011
- 《技术指标的102个卖点》朱树健著 2013
- 《背新闻的龙龟》臧健著 2011
- 《技术指标的108个买点》朱树健著 2013