实战Java虚拟机(第2版)

实战Java虚拟机(第2版)

JVM故障诊断与性能优化

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.837 评价豆瓣读书

作品简介

不管技术如何发展,Java依然是一个充满活力的生态圈,学习Java的人也越来越多,但多数人学习Java虚拟机(JVM)时都会遇到瓶颈。本书将通过200余个示例详细介绍JVM中的各种参数配置、故障排查、性能监控及性能优化,帮助Java人突破瓶颈。本书共11章,修订后版本涵盖Java 6~Java 10。第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心—Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。本书不仅适合Java程序员阅读,还适合工作于Java虚拟机之上的研发人员、软件设计师、架构师阅读。

葛一鸣,51CTO特约讲师,国家认证系统分析师,获得Oracle OCP认证。长期从事Java软件开发工作,对Java程序设计、JVM有深入的研究,对设计模式、人工智能、神经网络、数据挖掘等技术有浓厚兴趣,开设了在线的《深入浅出Java虚拟机——入门篇》培训课程。

作品目录

  1. 前言
  2. 第1章 初探Java虚拟机
  3. 1.1 知根知底:追溯Java的发展历程
  4. 1.2 跨平台的真相:Java虚拟机做中介
  5. 1.3 一切看我的:Java语言规范
  6. 1.4 一切听我的:Java虚拟机规范
  7. 1.5 数字编码就是计算机世界的水和电
  8. 1.6 抛砖引玉:编译和调试虚拟机
  9. 1.7 小结
  10. 第2章 认识Java虚拟机的基本结构
  11. 2.1 谋全局者才能成大器:看穿Java虚拟机的架构
  12. 2.2 小参数能解决大问题:学会设置Java虚拟机的参数
  13. 2.3 对象去哪儿:辨清Java堆
  14. 2.4 函数如何调用:出入Java栈
  15. 2.5 类去哪儿了:识别方法区
  16. 2.6 小结
  17. 第3章 常用Java虚拟机参数
  18. 3.1 一切运行都有迹可循:掌握跟踪调试参数
  19. 3.2 让性能飞起来:学习堆的配置参数
  20. 3.3 别让性能有缺口:了解非堆内存的参数配置
  21. 3.4 Client和Server二选一:虚拟机的工作模式
  22. 3.5 小结
  23. 第4章 垃圾回收的概念与算法
  24. 4.1 内存管理清洁工:认识垃圾回收
  25. 4.2 清洁工具大PK:讨论常用的垃圾回收算法
  26. 4.3 谁才是真正的垃圾:判断可触及性
  27. 4.4 垃圾回收时的停顿现象:Stop-The-World案例实战
  28. 4.5 小结
  29. 第5章 垃圾收集器和内存分配
  30. 5.1 一心一意一件事:串行回收器
  31. 5.2 人多力量大:并行回收器
  32. 5.3 一心多用都不落下:CMS回收器(JDK 8及之前的版本)
  33. 5.4 未来我做主:G1回收器(JDK 9及之后版本的默认回收器)
  34. 5.5 回眸:有关对象内存分配和回收的一些细节问题
  35. 5.6 温故又知新:常用的GC参数
  36. 5.7 动手才是真英雄:垃圾回收器对Tomcat性能影响的实验
  37. 5.8 小结
  38. 第6章 性能监控工具
  39. 6.1 有我更高效:Linux下的性能监控工具
  40. 6.2 用我更高效:Windows下的性能监控工具
  41. 6.3 外科手术刀:JDK性能监控工具
  42. 6.4 我是你的眼:图形化虚拟机监控工具JConsole
  43. 6.5 一目了然:可视化性能监控工具Visual VM
  44. 6.6 来自JRockit的礼物:虚拟机诊断工具Mission Control
  45. 6.7 小结
  46. 第7章 分析Java堆
  47. 7.1 对症才能下药:找到内存溢出的原因
  48. 7.2 无处不在的字符串:String在虚拟机中的实现
  49. 7.3 虚拟机也有内窥镜:使用MAT分析Java堆
  50. 7.4 筛选堆对象:MAT对OQL的支持
  51. 7.5 更精彩的查找:Visual VM对OQL的支持
  52. 7.6 小结
  53. 第8章 锁与并发
  54. 8.1 安全就是锁存在的理由:锁的基本概念和实现
  55. 8.2 避免残酷的竞争:锁在Java虚拟机中的实现和优化
  56. 8.3 应对残酷的竞争:锁在应用层的优化思路
  57. 8.4 无招胜有招:无锁
  58. 8.5 将随机变为可控:理解Java内存模型
  59. 8.6 小结
  60. 第9章 Class文件结构
  61. 9.1 不仅跨平台,还能跨语言:语言无关性
  62. 9.2 虚拟机的基石:Class文件
  63. 9.3 操作字节码:走进ASM
  64. 9.4 小结
  65. 第10章 Class装载系统
  66. 10.1 来去都有序:看懂Class文件的装载流程
  67. 10.2 一切Class从这里开始:掌握ClassLoader
  68. 10.3 小结
  69. 第11章 字节码执行
  70. 11.1 代码如何执行:字节码执行案例
  71. 11.2 执行的基础:Java虚拟机常用指令介绍
  72. 11.3 更上一层楼:再看ASM
  73. 11.4 谁说Java太刻板:Java Agent运行时修改类
  74. 11.5 与时俱进:动态方法调用
  75. 11.6 跑得再快点:静态编译优化
  76. 11.7 提高虚拟机的执行效率:JIT及其相关参数
  77. 11.8 小结
  78. 反侵权盗版声明
载入中