随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。本书共11章。第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是锁的支持。第9~10章介绍了虚拟机的核心——Class文件结构,以及虚拟机中类的装载系统。第11章介绍了虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。

目录

摘要

前言

第1章 初探Java虚拟机

1.1 知根知底:追溯Java的发展历程

1.2 跨平台的真相:Java虚拟机来做中介

1.3 一切看我的:Java语言规范

1.4 一切听我的:Java虚拟机规范

1.5 数字编码就是计算机世界的水和电

1.6 抛砖引玉:编译和调试虚拟机

1.7 小结

第2章 认识Java虚拟机的基本结构

2.1 谋全局者才能成大器:看穿Java虚拟机的架构

2.2 小参数能解决大问题:学会设置Java虚拟机的参数

2.3 对象去哪儿:辨清Java堆

2.4 函数如何调用:出入Java栈

2.5 类去哪儿了:识别方法区

2.6 小结

第3章 常用Java虚拟机参数

3.1 一切运行都有迹可循:掌握跟踪调试参数

3.2 让性能飞起来:学习堆的配置参数

3.3 别让性能有缺口:了解非堆内存的参数配置

3.4 Client和Server二选一:虚拟机的工作模式

3.5 小结

第4章 垃圾回收概念与算法

4.1 内存管理清洁工:认识垃圾回收

4.2 清洁工具大PK:讨论常用的垃圾回收算法

4.3 谁才是真正的垃圾:判断可触及性

4.4 垃圾回收时的停顿现象:Stop-The-World案例实战

4.5 小结

第5章 垃圾收集器和内存分配

5.1 一心一意一件事:串行回收器

5.2 人多力量大:并行回收器

5.3 一心多用都不落下:CMS回收器

5.4 未来我做主:G1回收器

5.5 回眸:有关对象内存分配和回收的一些细节问题

5.6 温故又知新:常用的GC参数

5.7 动手才是真英雄:垃圾回收器对Tomcat性能影响的实验

5.8 小结

第6章 性能监控工具

6.1 有我更高效:Linux下的性能监控工具

6.2 用我更高效:Windows下的性能监控工具

6.3 外科手术刀:JDK性能监控工具

6.4 我是你的眼:图形化虚拟机监控工具JConsole

6.5 一目了然:可视化性能监控工具VisualVM

6.6 来自JRockit的礼物:虚拟机诊断工具MissionControl

6.7 小结

第7章 分析Java堆

7.1 对症才能下药:找到内存溢出的原因

7.2 无处不在的字符串:String在虚拟机中的实现

7.3 虚拟机也有内窥镜:使用MAT分析Java堆

7.4 筛选堆对象:MAT对OQL的支持

7.5 更精彩的查找:VisualVM对OQL的支持

7.6 小结

第8章 锁与并发

8.1 安全就是锁存在的理由:锁的基本概念和实现

8.2 避免残酷的竞争:锁在Java虚拟机中的实现和优化

8.3 应对残酷的竞争:锁在应用层的优化思路

8.4 无招胜有招:无锁

8.5 将随机变为可控:理解Java内存模型

8.6 小结

第9章 Class文件结构

9.1 不仅跨平台,还能跨语言:语言无关性

9.2 虚拟机的基石:Class文件

9.3 操作字节码:走进ASM

9.4 小结

第10章 Class装载系统

10.1 来去都有序:看懂Class文件的装载流程

10.2 一切Class从这里开始:掌握ClassLoader

10.3 小结

第11章 字节码执行

11.1 代码如何执行:字节码执行案例

11.2 执行的基础:Java虚拟机常用指令介绍

11.3 更上一层楼:再看ASM

11.4 谁说Java太刻板:JavaAgent运行时修改类

11.5 与时俱进:动态函数调用

11.6 跑得再快点:静态编译优化

11.7 提高虚拟机的执行效率:JlT及其相关参数

11.8 小结

查看全部
书评
查看更多
请您登录后发表评论 登录 | 注册
我的评分:
提交
0/400