图书介绍

自己动手写Java虚拟机PDF|Epub|txt|kindle电子书版本网盘下载

自己动手写Java虚拟机
  • 张秀宏著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111534136
  • 出版时间:2016
  • 标注页数:268页
  • 文件大小:29MB
  • 文件页数:282页
  • 主题词:JAVA语言-程序设计

PDF下载


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

下载说明

自己动手写Java虚拟机PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 命令行工具1

1.1 准备工作1

1.1.1 安装JDK1

1.1.2 安装Go2

1.1.3 创建目录结构3

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.3.1 Entry接口12

2.3.2 DirEntry13

2.3.3 ZipEntry14

2.3.4 CompositeEntry15

2.3.5 WildcardEntry17

2.3.6 Classpath17

2.4 测试本章代码20

2.5 本章小结21

第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 类和超类索引32

3.2.7 接口索引表33

3.2.8 字段和方法表33

3.3 解析常量池35

3.3.1 ConstantPool结构体35

3.3.2 ConstantInfo接口37

3.3.3 CONSTANT_Integer_info39

3.3.4 CONSTANT_Float_info40

3.3.5 CONSTANT_Long_info40

3.3.6 CONSTANT_Double_info41

3.3.7 CONSTANT_Utf8_info42

3.3.8 CONSTANT_String_info43

3.3.9 CONSTANT_Class_info45

3.3.10 CONSTANT_NameAnd-Type_info46

3.3.11 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_Interface-Methodref_info47

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

第4章 运行时数据区65

4.1 运行时数据区概述66

4.2 数据类型67

4.3 实现运行时数据区68

4.3.1 线程68

4.3.2 Java虚拟机栈69

4.3.3 帧71

4.3.4 局部变量表72

4.3.5 操作数栈74

4.3.6 局部变量表和操作数栈实例分析76

4.4 测试本章代码81

4.5 本章小结83

第5章 指令集和解释器85

5.1 字节码和指令集86

5.2 指令和指令解码88

5.2.1 Instruction接口89

5.2.2 BytecodeReader91

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.9.1 lcmp指令103

5.9.2 fcmp<op>和dcmp<op>指令104

5.9.3 if<cond>指令105

5.9.4 if_icmp<cond>指令106

5.9.5 if_acmp<cond>指令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和ifnonnull指令113

5.11.3 goto_w指令113

5.12 解释器114

5.13 测试本章代码118

5.14 本章小结120

第6章 类和对象121

6.1 方法区122

6.1.1 类信息122

6.1.2 字段信息124

6.1.3 方法信息125

6.1.4 其他信息127

6.2 运行时常量池127

6.2.1 类符号引用129

6.2.2 字段符号引用130

6.2.3 方法符号引用132

6.2.4 接口方法符号引用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

第7章 方法调用和返回161

7.1 方法调用概述161

7.2 解析方法符号引用163

7.2.1 非接口方法符号引用163

7.2.2 接口方法符号引用165

7.3 方法调用和参数传递166

7.4 返回指令169

7.5 方法调用指令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 测试方法调用178

7.8 类初始化181

7.9 本章小结185

第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 <t>aload指令196

8.3.5 <t>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

第9章 本地方法调用211

9.1 注册和查找本地方法212

9.2 调用本地方法213

9.3 反射215

9.3.1 类和对象之间的关系215

9.3.2 修改类加载器217

9.3.3 基本类型的类219

9.3.4 修改ldc指令220

9.3.5 通过反射获取类名221

9.3.6 测试本节代码224

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

9.4.1 Java类库225

9.4.2 System.arraycopy()方法227

9.4.3 Float.floatToRawIntBits()和Double.doubleToRawLongBits()方法229

9.4.4 String.intern()方法229

9.4.5 测试本节代码230

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

热门推荐