1995 年,Sun 公司发布了 Java 编程语言以及相应的 Java 虚拟机(JVM),由此虚拟机开始为普通开发者所知。

在过去十几年里,虚拟机这个概念的内涵逐渐发生变化,从特指实现某个语言的运行时技术,扩大到系统仿真的各类技术,甚至容器技术。其中一个原因是,语言虚拟机已经被广泛应用在各个领域,并与各种系统紧密结合,从而不再新奇和稀有。

程序员在平时的工作中或多或少都会接触到某种语言的虚拟机,但语言虚拟机的设计技术对大多数人来说,仍然深不可测。因为不了解其设计决策的来龙去脉,所以想改进一个虚拟机或者开发自己的虚拟机,就会让人力不从心。大多数人觉得只要记得简单的规则就行,至于内部构造并不在了解范围。但是随着工作的深入,当你开始接触到虚拟机的实现原理后,你会发现自己看到了不一样的天地。也只有真的熟悉这些原理,才不会在出现问题的时候束手无策。

本月就从这本超强的《虚拟机设计与实现:以 JVM 为例》开始,一起来探索底层原理,重构自己的知识结构吧!本书作者李晓峰老师是 Apache Harmony JVM 的主要贡献者,他将带你系统地了解虚拟机的方方面面,没有技术的堆砌,干货满满。同时这本书还获得华为编译器技术首席科学家周志德老师的作序推荐。这可是虚拟机使用者不可多得的一本好书哟~

1.《虚拟机设计与实现:以JVM为例》

enter image description here

作者:[中]李晓峰
译者:单业

  • 虚拟机技术高手心得倾囊相授,深入、详尽剖析虚拟机工作原理
  • 业内行家热忱推荐,不可多得的虚拟机研发的进阶秘笈

本书从一位虚拟机(VM)架构师的角度,以易于理解、层层深入的方式介绍了各种主题和算法,尤其是不同 VM 通用的主要技术。这些算法用图示充分解释,用便于理解的代码片段实现,使得这些抽象概念对系统软件工程师而言具像化并可编程。书中还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书集理论性与实践性于一身,不仅结合了高层设计功能与底层实现,而且还结合了高级主题与商业解决方案,是 VM 设计和工程实践方面的理想参考读物。

2.《薛小小学Java》

enter image description here

作者:[德] 菲利普·阿克曼
译者:贾小龙

  • 趣味Java入门书
  • 生动的图片、幽默的解释、精选的示例

本书以幽默诙谐的写作方式,由浅入深、图文并茂地讲解了使用 Java 进行程序开发所需要的知识和技术。结合具体实例,书中介绍了变量、基本数据类型、控制流程等基本概念,以及泛型、lambda、JavaFX 等高级概念,同时论述了如何正确编写面向对象程序,哪些是好的、哪些是坏的编程习惯,如何让代码可读性更强,面向服务架构和函数式编程的区别,如何测试,等等。除此之外,书中还讲解了 XML、CSS、SQL 等相关知识。


3.《大数据项目管理:从规划到实现》

enter image description here

作者:[美] 特德 • 马拉斯卡 , [美] 乔纳森 • 塞德曼
译者:薛命灯

  • 大数据项目的“孙子兵法”,助你拥有软件开发大局观

本书提供了一个框架,从整体上介绍与大数据项目开发相关的基本概念,帮助读者评估大数据项目,理解成功的现代数据项目的基本要素。全书共 8 章,内容包括现代数据项目的主要类型、生命周期、风险管理、接口设计、分布式存储系统、元数据管理、数据处理等。本书旨在让读者厘清思路,顺利地从数据项目的规划阶段走到执行阶段,实现健壮、可维护的架构和解决方案。

4.《精通Python设计模式(第2版)》

enter image description here

作者:[法]卡蒙•阿耶娃 ,[荷]萨基斯•卡萨姆帕利斯
译者:葛言

  • 26种基本设计模式
  • 化解软件设计的常见问题

本书是针对 Python 代码实现设计模式的经典作品,着重讨论了用于解决日常问题的所有 GoF 设计模式,它们能帮助你构建有弹性、可伸缩、稳健的应用程序,并将你的编程技能提升至新的高度。第 2 版探讨了桥接模式、备忘模式以及与微服务相关的几种模式。

5.《一个数学家的辩白(双语版)》

enter image description here

作者:[英]戈弗雷•哈代
译者:何生

  • 英国数学家戈弗雷·哈罗德·哈代的经典名篇

美亚评分 4.7,本书是哈代于 1940 年写成的心得之作,展现了数学之美、数学的持久性和数学的重要性三大主题。作者从自己的角度谈论了数学中的美学,给众多数学“门外汉”一个机会,洞察工作中的数学家的内心。作者还讨论了数学的本质与特点、数学的历史及其社会功能等诸多话题。该书被称为是“用优雅的语言对数学真谛进行了完美的揭示”,原汁原味地向读者展示了一位真正、纯粹的数学家的数学思想,是不可多得的经典读物。

6.《Python高级机器学习》

enter image description here

作者:【英】约翰·哈蒂
译者:王大鹏 , 管晨 , 郭鹏程

  • 基于Python的机器学习指南
  • 用Python语言详细解读前沿机器学习技术,助你高效解决数据科学难题

本书全面介绍了各种强大的机器学习技术,不仅清晰阐释了基本的算法和概念,而且运用丰富的 Python 代码示例展示了各种复杂算法的实现与应用,还介绍了如何使用流行的机器学习库和框架。内容包括:无监督机器学习、深度信念网络、堆叠式降噪自编码机、卷积神经网络、半监督学习技术、文本特征工程,模型集成方法,以及其他一些实用的 Python 机器学习工具。除了理论知识与代码实现,本书还细致讲解了分析和解决问题的思路,极具启发性。

7.《生成对抗网络项目实战》

enter image description here

作者:[印] 凯拉什·阿伊瓦
译者:倪琛

  • 使用TensorFlow和Keras
  • 构建新一代生成模型

生成对抗网络(GAN)可以模拟任何数据分布方式,因而潜力巨大,为很多难以自动化的问题提供了解决途径。本书立足理论,着重实践,带领读者快速熟悉并上手 GAN。本书首先介绍构建高效项目所涉及的概念、工具和库,然后利用不同类型的数据集,依次构建 7 个 GAN 项目,训练并优化 GAN 模型。这些项目涵盖了各种流行方法,包括3D-GAN、Age-cGAN、DCGAN、SRGAN、StackGAN、CycleGAN 和 pix2pix。

8.《信息设计之美:如何准确传达丰富的信息》

enter image description here

作者:[美] 乔尔•卡茨
译者:刘云涛

  • 信息爆炸的大数据时代,信息设计和呈现尤其重要
  • TED创始人力荐
  • 全彩印刷,百余案例分析设计的要义

万物皆需设计。本书通过上百个或成功、或失败、或几经修改的案例,讲解了针对复杂数据的设计方法,讨论了如何让设计变得更有意义、更简洁、更易用,旨在帮助设计人员解决将数据可视化为信息的过程中遇到的种种困难。全书从信息设计概述、定性问题、定量问题、结构、组织和字体、地图设计等方面展开,深入讨论信息设计的观点和过程,展示简单、真实且可行的信息传达方法。