图书介绍

HotSpot实战PDF|Epub|txt|kindle电子书版本网盘下载

HotSpot实战
  • 陈涛著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115343635
  • 出版时间:2014
  • 标注页数:347页
  • 文件大小:63MB
  • 文件页数:358页
  • 主题词:虚拟处理机

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐