深入浅出 Java虚拟机设计与实现
全新正版 极速发货
¥
53.71
5.4折
¥
99
全新
库存2件
作者华保健
出版社机械工业出版社
ISBN9787111645245
出版时间2020-04
装帧平装
开本16开
定价99元
货号1202056245
上书时间2024-09-05
商品详情
- 品相描述:全新
- 商品描述
-
目录
前言
章 虚拟机架构
1.1 Java与Java虚拟机
1.1.1 设计背景
1.1.2 Java技术栈的组成要素
1.1.3 Java字节码
1.2 Java虚拟机架构
1.3 实例:J语言及其编译
1.3.1 J语言语法
1.3.2 栈式计算机
1.3.3 J字节码
1.3.4 J语言编译到J字节码
1.4 实例:J虚拟机
1.4.1 字节码加载子系统
1.4.2 字节码验证器
1.4.3 解释执行引擎
第2章 类加载器
2.1 实例:Java的类加载
2.2 类的二进制定义
2.2.1 常量池
2.2.2 接口
2.2.3 字段
2.2.4 方法
2.2.5 属性
2.3 方法区
2.3.1 代码区
2.3.2 运行时常量池
2.3.3 类辅助数据结构
2.4 类装载
2.4.1 递归下降装载
2.4.2 接口的装载
2.4.3 数组的装载
2.4.4 基本类的装载
2.5 验证
2.5.1 为什么要进行验证
2.5.2 验证的目标
2.5.3 实例:验证规则
2.5.4 结构化约束
2.5.5 类型推导
2.6 准备
2.6.1 静态字段的准备
2.6.2 非静态字段的准备
2.6.3 虚方法表
2.7 解析
2.7.1 实例:类的解析
2.7.2 类的解析
2.7.3 字段的解析
2.7.4 方法的解析
2.7.5 接口方法的解析
2.7.6 字符串常量的解析
2.7.7 常量池其他表项的解析
2.8 初始化
2.8.1 类初始化方法
2.8.2 类初始化算法
2.9 类加载各阶段的执行顺序
2.9.1 急切策略和惰性策略
2.9.2 类解析和类初始化的耦合性
2.10 自定义类加载器
2.10.1 独立加载模型
2.10.2 双亲委派模型
2.11 实例:类加载器的典型应用
2.11.1 动态代理
2.11.2 热替换
第3章 执行引擎
3.1 栈帧结构
3.2 调用规范
3.3 执行引擎架构
3.3.1 序列式架构
3.3.2 跳转表架构
3.4 执行引擎实现
3.4.1 常量加载指令
3.4.2 数据加载指令
3.4.3 数据存储指令
3.4.4 栈操作指令
3.4.5 数学运算指令
3.4.6 数值转换指令
3.4.7 比较运算指令
3.4.8 控制转移指令
3.4.9 引用指令
3.4.10 扩展与虚拟机保留指令
3.5 本地方法执行引擎
3.6 可重入方法
3.7 汇编模板
第4章 本地方法接口
4.1 实例:Java本地方法
4.2 方法绑定
4.2.1 本地方法的数据结构
4.2.2 动态库加载
4.2.3 动态绑定
4.2.4 静态绑定
4.3 本地方法拦截
4.3.1 拦截机制
4.3.2 耦合性
4.3.3 反射
4.4 本地方法回调Java方法
4.4.1 JNI回调函数
4.4.2 本地方法栈帧
第5章 异常处理
5.1 实例:Java异常处理
5.2 异常栈
5.3 异常表
5.4 栈回滚
5.5 本地方法异常
5.6 其他问题
5.6.1 隐式异常
5.6.2 异常处理与多线程
5.6.3 执行效率
第6章 堆和垃圾收集
6.1 实例:对象与垃圾
6.1.1 语法垃圾与语义垃圾
6.1.2 内存泄漏
6.2 堆
6.2.1 堆数据结构
6.2.2 堆分配接口
6.3 存储布局
6.3.1 对象的存储布局
6.3.2 类的存储布局
6.3.3 数组的存储布局
6.4 垃圾收集
6.4.1 根节点
6.4.2 复制收集
6.4.3 终结
6.4.4 垃圾收集的触发
6.5 本地方法和垃圾收集
6.5.1 局部和全局引用
6.5.2 对象引用相关JNI函数的实现
6.6 其他问题
6.6.1 多线程与垃圾收集
6.6.2 无中断垃圾收集
6.6.3 类型标记
第7章 多线程
7.1 线程语义模型
7.1.1 线程方法
7.1.2 线程状态
7.1.3 实例:线程中断
7.2 管程
7.2.1 管程数据结构
7.2.2 接口与实现
7.2.3 管程指令
7.2.4 管程与对象
7.3 多线程的实现
7.3.1 线程数据结构
7.3.2 创建线程对象
7.3.3 启动
7.3.4 让出
7.3.5 睡眠
7.3.6 中断
7.3.7 停止、挂起和继续
7.3.8 原子性和可见性
7.3.9 线程与信号
7.4 多线程与虚拟机其他子系统的交互
7.4.1 全局数据结构与锁
7.4.2 类初始化
7.4.3 垃圾收集
第8章 调试
8.1 调试器架构
8.1.1 客户端{服务器架构
8.1.2 JDWP调试协议
8.1.3 数据类型
8.1.4 实例:断点
8.2 调试代理
8.2.1 通信模块
8.2.2 执行引擎模块
8.2.3 对象管理模块
8.2.4 事件处理模块
8.3 实例:jdb调试器
8.4 调试的其他问题
8.4.1 薛定谔困境
8.4.2 调试与安全性
8.4.3 实例:JVM渗透
内容摘要
本书由靠前编译器和虚拟机方面的研究者执笔,详细介绍了Java虚拟机设计与实现的各个方面,并给出了相关算法的实现。全书围绕虚拟机架构,讨论了虚拟机中的所有重要组件,包括类加载器、执行引擎、本地方法接口、异常处理、堆和垃圾收集、多线程及调试。
本书不仅关注对技术本身的介绍,还重点强调了这些技术所涉及的知识对读者进一步掌握工具和提高软件设计水平的重要作用,并给出了丰富的示例和很好实践。
本书适合Java程序员、对编译器和虚拟机底层技术感兴趣的工程人员,以及高等院校计算机相关专业的学生阅读。
— 没有更多了 —
以下为对购买帮助不大的评价