资源名称:自己动手写Java虚拟机

内容简介:

Java虚拟机非常复杂,要想真正理解它的工作原理,最好的方式就是自己动手编写一个!

本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!

本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。

作者简介:

张秀宏,资深Java服务器开发工程师,有多年的Java开发、游戏服务器开发和架构经验,对Java虚拟机有非常深入的研究。曾在EA、华娱无线等游戏公司担任高级服务器工程师职位,现任乐元素Lead软件工程师。

资源目录:

第1章 命令行工具 1

1.1 准备工作 1

1.2 java命令 4

1.3 编写命令行工具 5

1.4 测试本章代码 7

1.5 本章小结 8

第2章 搜索class文件 9

2.1 类路径 9

2.2 准备工作 10

2.3 实现类路径 11

2.4 测试本章代码 20

2.5 本章小结 21

第3章 解析class文件 23

3.1 class文件 24

3.2 解析class文件 25

3.3 解析常量池 35

3.4 解析属性表 50

3.5 测试本章代码 61

3.6 本章小结 63

第4章 运行时数据区 65

4.1 运行时数据区概述 66

4.2 数据类型 67

4.3 实现运行时数据区 68

4.4 测试本章代码 81

4.5 本章小结 83

第5章 指令集和解释器 85

5.1 字节码和指令集 86

5.2 指令和指令解码 88

5.2.1 Instruction接口 89

5.2.2 BytecodeReader 91

5.3 常量指令 92

5.3.1 nop指令 92

5.3.2 const系列指令 93

5.3.3 bipush和sipush指令 94

5.4 加载指令 94

5.5 存储指令 95

5.6 栈指令 96

5.6.1 pop和pop2指令 96

5.6.2 dup指令 97

5.6.3 swap指令 98

5.7 数学指令 98

5.7.1 算术指令 98

5.7.2 位移指令 99

5.7.3 布尔运算指令 101

5.7.4 iinc指令 102

5.8 类型转换指令 102

5.9 比较指令 103

5.10 控制指令 108

5.11 扩展指令 111

5.12 解释器 114

5.13 测试本章代码 118

5.14 本章小结 120

第6章 类和对象 121

6.1 方法区 122

6.2 运行时常量池 127

6.3 类加载器 133

6.4 对象、实例变量和类变量 136

6.5 类和字段符号引用解析 141

6.6 类和对象相关指令 144

6.7 测试本章代码 156

6.8 本章小结 160

第7章 方法调用和返回 161

7.1 方法调用概述 161

7.2 解析方法符号引用 163

7.3 方法调用和参数传递 166

7.4 返回指令 169

7.5 方法调用指令 170

7.6 改进解释器 176

7.7 测试方法调用 178

7.8 类初始化 181

7.9 本章小结 185

第8章 数组和字符串 187

8.1 数组概述 187

8.2 数组实现 188

8.3 数组相关指令 191

8.4 测试数组 203

8.5 字符串 204

8.6 测试字符串 207

8.7 本章小结 210

第9章 本地方法调用 211

9.1 注册和查找本地方法 212

9.2 调用本地方法 213

9.3 反射 215

9.4 字符串拼接和String.intern()方法 225

9.5 Object.hashCode()、equals()和toString() 231

9.6 Object.clone() 233

9.7 自动装箱和拆箱 235

9.8 本章小结 238

第10章 异常处理 239

10.1 异常处理概述 239

10.2 异常抛出 240

10.3 异常处理表 241

10.4 实现athrow指令 245

10.5 Java虚拟机栈信息 248

10.6 测试本章代码 251

10.7 本章小结 252

第11章 结束 253

11.1 System类是如何被初始化的 253

11.2 初始化System类 255

11.3 System.out.println()是如何工作的 258

11.4 测试本章代码 260

11.5 总结 260

附录 指令表 263

资源截图:

1.png

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长QQ&VX:1754646538 提供付款信息为您处理。

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源。