自己动手写Java虚拟机

出版日期:2016-6-1
ISBN:9787111534131
作者:张秀宏
页数:267页

内容概要

张秀宏,资深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

作者简介

Java虚拟机非常复杂,要想真正理解它的工作原理,最好的方式就是自己动手编写一个!
本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!
本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。


 自己动手写Java虚拟机下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     收到这个书两周了。拿到这本书第一印象是200页左右、薄 。能有多少干货。另外一个是两周要写书评。肯定能读完。结果事与愿违,这两周太忙了。只读了一半。前5章。经过这几个章节的通读。本书风格不是那么枯燥的文字,还配有大量的代码。然而本书必须是有一定语言经验的人才能尝试。如果你不知道jvm的基本知识。不知道go的语法。不知道go的标准库。我只能说读这本书之时最好准备好 java虚拟机规范 go学习笔记之类的书。不然好多东西也是不好理解的。这也凸显了作者对go和java的研究之深,让我膜拜。本书还是比较适合做java开发的人想学习go的读者。本人就是。两边的知识都可以同时捡起。不失乐趣。另外之前在一个国内顶尖的go圈子里看到有人喷作者的代码风格。当然大家都是交流。不过我还是要引用一个jvm研究群里R大的一句评价“能写出一个能运行的东西已经很难得”,另外后面章节没有通读。看目录没看到 gc这块的东西怎么处理。后续看完在做分享。

精彩短评 (总计11条)

  •     用go写个jvm… 关键地方一点没涉及
  •     我要用java做一个jvm,名字就叫“要你命3000”,我就问你怕不怕。
  •     还不错,算是对JVM的一个启蒙了,是比较简单的一个JVM实现,还有很多没有涉及,有点java基础和数据结构基础的都能看懂
  •     作者代码很清晰,全书解释亦然明了。通过实际代码解释了如何从0用go加载解释运行编译好的class文件,可惜没有gc 线程锁 JIT等内容,但还是非常推荐
  •     学习java好多年了,近期一直在做Go语言相关的工作,本书数同事推荐的,看了一半感觉还是挺不错的,需要一定的功底才可以看懂~ 还是挺值得看的~
  •     这本书的立意不错,我是结合着《深入理解Java虚拟机》一书来看的,能够从编码的角度去理解虚拟机的工作原理。不过就实用性和个人收获上不是很多,书的定价相对来说高了点,而且采用的是大家都不是很熟悉的Go语言,因此评分给三星。
  •     用Go语言实现,这一点真是大亮点,此外又可以对Java虚拟机有了解
  •     可以结合《深入理解Java虚拟机》一起读
  •     流水账的一本书,可以快速浏览一下
  •     运行时数据区Java局部变量表和操作数栈实例分析这部分还是蛮有用的
  •     Go语言实现了一个玩具JVM,对于入门JVM是很不错的一本书,详细讲述了类加载和指令执行,推荐。遗憾的是没有实现GC和JIT、多线程等内容。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024