图书介绍
HotSpot实战PDF|Epub|txt|kindle电子书版本网盘下载
![HotSpot实战](https://www.shukui.net/cover/14/35051267.jpg)
- 陈涛著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115343635
- 出版时间:2014
- 标注页数:347页
- 文件大小:63MB
- 文件页数:358页
- 主题词:虚拟处理机
PDF下载
下载说明
HotSpot实战PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 初识HotSpot1
1.1 JDK概述2
1.1.1 JCP与JSR3
1.1.2 JDK的发展历程4
1.1.3 Java 7的语法变化7
1.2动手编译虚拟机13
1.2.1源代码下载13
1.2.2 HotSpot 源代码结构13
1.2.3搭建编译环境15
1.2.4编译目标16
1.2.5编译过程17
1.2.6编译常见问题19
1.3实战:在HotSpot内调试HelloWorld20
1.3.1认识GDB21
1.3.2准备调试脚本22
1.4小结26
第2章 启动28
2.1 HotSpot内核28
2.1.1如何阅读源代码28
2.1.2 HotSpot内核框架36
2.1.3 Prims37
2.1.4 Services39
2.1.5 Runtime43
2.2启动46
2.2.1 Launcher46
2.2.2虚拟机生命周期48
2.2.3入口:main函数50
2.2.4主线程51
2.2.5 InitializeJVM函数53
2.2.6 JNI CreateJavaVM函数55
2.2.7调用Java主方法56
2.2.8 JVM退出路径56
2.3系统初始化57
2.3.1配置OS模块58
2.3.2配置系统属性60
2.3.3加载系统库61
2.3.4启动线程62
2.3.5 vm init_globals函数:初始化全局数据结构65
2.3.6 init_globals函数:初始化全局模块65
2.4小结69
第3章 类与对象70
3.1对象表示机制71
3.1.1 OOP-Klass二分模型71
3.1.2 Oops模块71
3.1.3 OOP框架与对象访问机制73
3.1.4 Klass与instanceKlass79
3.1.5实战:用HSDB调试HotSpot82
3.2类的状态转换87
3.2.1入口:Class文件87
3.2.2类的状态92
3.2.3加载96
3.2.4链接101
3.2.5初始化104
3.2.6实战:类的“族谱”107
3.2.7实战:系统字典111
3.3创建对象113
3.3.1实例对象的创建流程114
3.3.2实战:探测JVM内部对象116
3.4小结119
第4章 运行时数据区120
4.1堆121
4.1.1 Java的自动内存管理121
4.1.2堆的管理122
4.2线程私有区域125
4.2.1 PC125
4.2.2 JVM栈126
4.3方法区126
4.3.1纽带作用127
4.3.2常量池130
4.3.3常量池缓存:ConstantPoolCache133
4.3.4方法的表示:methodoop134
4.3.5方法的解析:将符号引用转换成直接引用138
4.3.6代码放在哪里:ConstMethodOop141
4.3.7实战:探测运行时常量池142
4.4性能监控数据区:Perf Data147
4.4.1描述这段空间:PerfMemory147
4.4.2查看148
4.4.3生产150
4.5转储151
4.5.1用VisualVM进行转储分析151
4.5.2 JVM Crash153
4.6小结158
第5章 垃圾收集159
5.1堆与GC160
5.1.1垃圾收集160
5.1.2分代收集162
5.1.3快速分配165
5.1.4栈上分配和逸出分析167
5.1.5 GC公共模块167
5.2垃圾收集器170
5.2.1设计演进170
5.2.2 CMS收集器175
5.2.3 G1收集器180
5.3实战:性能分析方法184
5.3.1获取GC日志184
5.3.2 GC监控信息187
5.3.3内存分析工具189
5.3.4选择合适的收集器与GC性能评估190
5.3.5不要忽略JVM Crash日志195
5.4小结196
第6章栈197
6.1硬件背景:了解真实机器198
6.1.1程序是如何运行的198
6.1.2 x86与栈帧199
6.1.3 ARM对Java硬件级加速:Jazelle技术202
6.2 Java栈203
6.2.1寄存器式指令集与栈式指令集203
6.2.2 HotSpot中的栈204
6.2.3栈帧207
6.2.4充分利用寄存器资源210
6.2.5虚拟机如何调用 Java函数212
6.2.6优化:栈顶缓存221
6.2.7实战:操作数栈223
6.3小结228
第7章 解释器和即时编译器229
7.1概述230
7.2解释器如何工作231
7.2.1 Interpreter模块232
7.2.2 Code模块234
7.2.3字节码表235
7.2.4 Code Cache236
7.2.5 InterpreterCodelet与Stub队列239
7.2.6 Code生成器241
7.2.7模板表与转发表244
7.2.8实战:InterpreterCodelet247
7.3即时编译器250
7.3.1概述250
7.3.2编译器模块251
7.3.3编译器的基本结构252
7.3.4实战:编译原理实践,了解编译中间环节255
7.4小结267
第8章 指令集268
8.1再说栈式指令集268
8.2数据传送270
8.2.1局部变量、常量池和操作数栈之间的数据传送270
8.2.2数据传送指令272
8.2.3实战:数组的越界检查277
8.3类型转换279
8.4对象的创建和操作281
8.5程序流程控制282
8.5.1控制转移指令282
8.5.2条件转移283
8.5.3无条件转移284
8.5.4复合条件转移285
8.5.5实战:switch语句如何使用String287
8.6运算290
8.6.1加法:iadd290
8.6.2取负:ineg291
8.7函数的调用和返回292
8.7.1 Java函数分发机制:VTABLE与ITABLE293
8.7.2 invoke系列指令297
8.7.3动态分发:覆盖299
8.7.4静态分发:重载302
8.8异常305
8.8.1异常表305
8.8.2创建异常306
8.8.3try-catch309
8.8.4 finally311
8.9小结312
第9章 虚拟机监控工具313
9.1 Attach机制314
9.1.1 AttachProvider与VirtualMachine314
9.1.2命令的下发:executeO317
9.1.3命令的执行:Attach Listener守护线程319
9.2查看JVM进程320
9.2.1用jps查看Java进程320
9.2.2实战:定制jps,允许查看库路径323
9.3查看和配置JVM326
9.3.1用jinfo查看JVM参数配置326
9.3.2实战:扩展flags选项,允许查看命令行参数330
9.4堆内存转储工具332
9.4.1 Heap Dump332
9.4.2原理333
9.5堆转储分析337
9.5.1 Heap Dump分析工具:jhat337
9.5.2实战:MAT分析过程340
9.6线程转储分析343
9.6.1 jstack343
9.6.2实战:如何分析资源等待344
9.7小结347