书籍详情
《自己动手写Java虚拟机》[37M]百度网盘|亲测有效|pdf下载
  • 自己动手写Java虚拟机

  • 出版社:互动出版网图书专营店
  • 热度:7065
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

 书[0名0]:  自己动手写Java虚拟[1机1][按需印刷]|4954409
 图书定价:  69元
 图书作者:  张秀宏
 出版社:  [1机1]械工业出版社
 出版日期:  2016/5/1 0:00:00
 ISBN号:  9787111534136
 开本:  16开
 页数:  267
 版次:  1-1
 作者简介
张秀宏,资深Java服务器开发工程师,有多年的Java开发、游戏服务器开发和架构[纟巠]验,对Java虚拟[1机1]有非常深入的研究。曾在EA、华娱无线等游戏公司担任高级服务器工程师职位,现任乐元素Lead软[亻牛]工程师。
 内容简介
Java虚拟[1机1]非常复杂,要想真正理解它的工作原理,[*][女子]的方式就是自己动手编写一个!
本书是继《深入理解Java虚拟[1机1]》之后的又一[纟巠]典著作,它一方[mian]遵循《Java虚拟[1机1]规范》,一方[mian]又[0独0]辟蹊径,不仅能让Java虚拟[1机1]的[0学0]习变得更加简单和有趣,而且能让你对Java虚拟[1机1]的原理认识更深入和更深刻!
本书摒弃了传统的以解读枯燥的Java虚拟[1机1]规范文档和分析繁琐的Java虚拟[1机1]源代码的方式来讲解Java虚拟[1机1],取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟[1机1],整个过程不仅能让读者做到对Java虚拟[1机1][0知0]其然而且[0知0]其所以然,还能屏蔽[0大0]量不必要的繁琐细节,体[0会0]到实现过程中的成就感,让[0学0]习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟[1机1]的工作原理。
 目录

前言
[0第0]1章 命令行工具 1
1.1 准备工作 1
1.1.1 安装JDK 1
1.1.2 安装Go 2
1.1.3 创建目录结构 3
1.2 java命令 4
1.3 编写命令行工具 5
1.4 测试本章代码 7
1.5 本章小结 8
[0第0]2章 搜索class文[亻牛] 9
2.1 类路径 9
2.2 准备工作 10
2.3 实现类路径 11
2.3.1 Entry接口 12
2.3.2 DirEntry 13
2.3.3 ZipEntry 14
2.3.4 Com[p1o1s]iteEntry 15
2.3.5 WildcardEntry 17
2.3.6 Classpath 17
2.4 测试本章代码 20
2.5 本章小结 21
[0第0]3章 解析class文[亻牛] 23
3.1 class文[亻牛] 24
3.2 解析class文[亻牛] 25
3.2.1 读取数据 26
3.2.2 整体结构 27
3.2.3 魔数 30
3.2.4 版本号 31
3.2.5 类访问标志 32
3.2.6 类和[0超0]类索引 32
3.2.7 接口索引表 33
3.2.8 字段和方[0法0]表 33
3.3 解析常量池 35
3.3.1 ConstantPool结构体 35
3.3.2 ConstantInfo接口 37
3.3.3 CONSTANT_Integer_info 39
3.3.4 CONSTANT_Float_info 40
3.3.5 CONSTANT_Long_info 40
3.3.6 CONSTANT_Double_info 41
3.3.7 CONSTANT_Utf8_info 42
3.3.8 CONSTANT_String_info 43
3.3.9 CONSTANT_Class_info 45
3.3.10 CONSTANT_NameAnd-Type_info 46
3.3.11 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_Interface-Methodref_info 47
3.3.12 常量池小结 49
3.4 解析属性表 50
3.4.1 AttributeInfo接口 50
3.4.2 Deprecated和Synthetic属性 53
3.4.3 SourceFile属性 54
3.4.4 ConstantValue属性 55
3.4.5 Code属性 56
3.4.6 Exceptions属性 58
3.4.7 LineNumberTable和LocalVariableTable属性 59
3.5 测试本章代码 61
3.6 本章小结 63
[0第0]4章 运行时数据区 65
4.1 运行时数据区概述 66
4.2 数据类型 67
4.3 实现运行时数据区 68
4.3.1 线程 68
4.3.2 Java虚拟[1机1]栈 69
4.3.3 帧 71
4.3.4 局部变量表 72
4.3.5 [*]作数栈 74
4.3.6 局部变量表和[*]作数栈实例分析 76
4.4 测试本章代码 81
4.5 本章小结 83
[0第0]5章 指令集和解释器 85
5.1 字节码和指令集 86
5.2 指令和指令解码 88
5.2.1 Instruction接口 89
5.2.2 BytecodeReader 91
5.3 常量指令 92
5.3.1 [0no0]p指令 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 数[0学0]指令 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.9.1 lcmp指令 103
5.9.2 fcmp和dcmp指令 104
5.9.3 if指令 105
5.9.4 if_icmp指令 106
5.9.5 if_acmp指令 107
5.10 控制指令 108
5.10.1 goto指令 108
5.10.2 tableswitch指令 108
5.10.3 lookupswitch指令 110
5.11 扩展指令 111
5.11.1 wide指令 111
5.11.2 ifnull和if[0no0]nnull指令 113
5.11.3 goto_w指令 113
5.12 解释器 114
5.13 测试本章代码 118
5.14 本章小结 120
[0第0]6章 类和对象 121
6.1 方[0法0]区 122
6.1.1 类信息 122
6.1.2 字段信息 124
6.1.3 方[0法0]信息 125
6.1.4 其他信息 127
6.2 运行时常量池 127
6.2.1 类符号引用 129
6.2.2 字段符号引用 130
6.2.3 方[0法0]符号引用 132
6.2.4 接口方[0法0]符号引用 132
6.3 类加载器 133
6.3.1 readClass() 134
6.3.2 defineClass() 135
6.3.3 link() 136
6.4 对象、实例变量和类变量 136
6.5 类和字段符号引用解析 141
6.5.1 类符号引用解析 141
6.5.2 字段符号引用解析 142
6.6 类和对象相关指令 144
6.6.1 new指令 144
6.6.2 putstatic和getstatic指令 146
6.6.3 putfield和getfield指令 148
6.6.4 instanceof和checkcast指令 150
6.6.5 ldc指令 154
6.7 测试本章代码 156
6.8 本章小结 160
[0第0]7章 方[0法0]调用和返回 161
7.1 方[0法0]调用概述 161
7.2 解析方[0法0]符号引用 163
7.2.1 非接口方[0法0]符号引用 163
7.2.2 接口方[0法0]符号引用 165
7.3 方[0法0]调用和参数传递 166
7.4 返回指令 169
7.5 方[0法0]调用指令 170
7.5.1 invokestatic指令 170
7.5.2 invokespecial指令 170
7.5.3 invokevirtual指令 172
7.5.4 invokeinterface指令 174
7.6 改进解释器 176
7.7 测试方[0法0]调用 178
7.8 类初始化 181
7.9 本章小结 185
[0第0]8章 数组和字符串 187
8.1 数组概述 187
8.2 数组实现 188
8.2.1 数组对象 188
8.2.2 数组类 190
8.2.3 加载数组类 191
8.3 数组相关指令 191
8.3.1 newarray指令 192
8.3.2 anewarray指令 194
8.3.3 arraylength指令 195
8.3.4 aload指令 196
8.3.5 astore指令 197
8.3.6 multianewarray指令 198
8.3.7 完善instanceof和checkcast指令 201
8.4 测试数组 203
8.5 字符串 204
8.5.1 字符串池 205
8.5.2 完善ldc指令 206
8.5.3 完善类加载器 207
8.6 测试字符串 207
8.7 本章小结 210
[0第0]9章 本地方[0法0]调用 211
9.1 注册和查找本地方[0法0] 212
9.2 调用本地方[0法0] 213
9.3 反[身寸] 215
9.3.1 类和对象之间的关系 215
9.3.2 修改类加载器 217
9.3.3 基本类型的类 219
9.3.4 修改ldc指令 220
9.3.5 通过反[身寸]获取类[0名0] 221
9.3.6 测试本节代码 224
9.4 字符串拼接和String.intern()方[0法0] 225
9.4.1 Java类库 225
9.4.2 System.arraycopy()方[0法0] 227
9.4.3 Float. floatToRawIntBits()和Double.doubleToRawLongBits()方[0法0] 229
9.4.4 String.intern()方[0法0] 229
9.4.5 测试本节代码 230
9.5 Object.hashCode()、equals()和toString() 231
9.6 Object.clone() 233
9.7 自动装箱和拆箱 235
9.8 本章小结 238
[0第0]10章 异常处理 239
10.1 异常处理概述 239
10.2 异常抛出 240
10.3 异常处理表 241
10.4 实现athrow指令 245
10.5 Java虚拟[1机1]栈信息 248
10.6 测试本章代码 251
10.7 本章小结 252
[0第0]11章 结束 253
11.1 System类是如何被初始化的 253
11.2 初始化System类 255
11.3 System.out.println()是如何工作的 258
11.4 测试本章代码 260
11.5 总结 260
附录 指令表 263