搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
自己动手写Java虚拟机
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111534136
  • 作      者:
    张秀宏著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2016
收藏
作者简介
  张秀宏,资深Java服务器开发工程师,有多年的Java开发、游戏服务器开发和架构经验,对Java虚拟机有非常深入的研究。曾在EA、华娱无线等游戏公司担任高级服务器工程师职位,现任乐元素Lead软件工程师。
展开
内容介绍
  Java虚拟机非常复杂,要想真正理解它的工作原理,*好的方式就是自己动手编写一个!
  本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!
  本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。
展开
精彩书评
  想要了解Java虚拟机的内部运行原理,阅读虚拟机规范、书籍、源码是一种常见的途径,而从零开始自己动手编写一个实验室性质的Java虚拟机,也许会是一种更加有趣且有效的学习路径。如果不考虑Java庞大类库的实现和JVM的实际生产力需求,仅是去“正确地”实现一台Java虚拟机,其实并不如大多数人所想的那样高深和困难——只需正确读取Class文件中每一条字节码指令,并且能正确执行这些指令所蕴含的操作即可。通过本书,您可以跟随作者的思路和指引,一步步完成Java虚拟机的各个组成部分,在动手的过程中了解Java虚拟机的运作原理。
  —— 周志明 《深入理解Java虚拟机:JVM高级特性与*佳实践》 作者

  这是国内*一本以实战模式描述JVM原理的书!秀宏对JVM进行了大量研究,在书中深入浅出地分析了class文件的数据结构和JVM的基本原理,并使用Go语言用不到1万行的程序代码就实现了JVM的基本模型,是Java爱好者了解JVM实现原理的一本好书。实战才是*有效的掌握知识的手段,快快动手,实现属于自己的Java虚拟机吧!
  —— 凌聪 乐元素CTO

  JVM对大多数的Java开发人员,无论是初出茅庐的菜鸟以及工作多年的老手,可能都还是一个神秘的、高深莫测的黑匣子。本书的出版,使作者通过一个个实践的方式,一步步带领大家饶有趣味地揭开JVM的神秘面纱,*大加深程序员对Java的理解,进而构建更加合理高效的代码。
  —— 金智伟 钱咸升(北京)网络科技股份公司CTO
展开
精彩书摘
  想要了解Java虚拟机的内部运行原理,阅读虚拟机规范、书籍、源码是一种常见的途径,而从零开始自己动手编写一个实验室性质的Java虚拟机,也许会是一种更加有趣且有效的学习路径。如果不考虑Java庞大类库的实现和JVM的实际生产力需求,仅是去“正确地”实现一台Java虚拟机,其实并不如大多数人所想的那样高深和困难——只需正确读取Class文件中每一条字节码指令,并且能正确执行这些指令所蕴含的操作即可。通过本书,您可以跟随作者的思路和指引,一步步完成Java虚拟机的各个组成部分,在动手的过程中了解Java虚拟机的运作原理。
  —— 周志明 《深入理解Java虚拟机:JVM高级特性与*佳实践》 作者

  这是国内第一本以实战模式描述JVM原理的书!秀宏对JVM进行了大量研究,在书中深入浅出地分析了class文件的数据结构和JVM的基本原理,并使用Go语言用不到1万行的程序代码就实现了JVM的基本模型,是Java爱好者了解JVM实现原理的一本好书。实战才是*有效的掌握知识的手段,快快动手,实现属于自己的Java虚拟机吧!
  —— 凌聪 乐元素CTO

  JVM对大多数的Java开发人员,无论是初出茅庐的菜鸟以及工作多年的老手,可能都还是一个神秘的、高深莫测的黑匣子。本书的出版,使作者通过一个个实践的方式,一步步带领大家饶有趣味地揭开JVM的神秘面纱,极大加深程序员对Java的理解,进而构建更加合理高效的代码。
  —— 金智伟 钱咸升(北京)网络科技股份公司CTO
展开
目录
前言
第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????
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证