涵盖的内容

第1章简要地概述Java平台和Java虚拟机(JVM)。该章描述运行在JVM上的应用程序的常见用途,包括Web应用程序、大数据分析和物联网(Internet of Things,IoT),还介绍最重要的JVM概念,如即时编译器、类型系统和垃圾收集器。

第2章从技术角度更详细地阐述JVM,包括如何在主要的操作系统(Windows、macOS和Linux)上安装Java开发包(Java Development Kit,JDK)、JDK的组织结构、Java类库的组织结构,以及如何通过设置类路径(ClassPath)来运行基于JVM的应用程序。

第3章介绍Java基础知识,包括创建类以及根据它实例化对象、在类中添加方法和属性,以及Java访问限定符和其他限定符。另外,还讨论了其他一些概念,包括抽象类、接口、数组、集合和异常。最后,介绍了线程和lambda等高级概念。

第4章详细介绍如何使用Java语言创建简单的Web服务。在创建简单Web服务的过程中,使用的工具包括Eclipse IDE、构建工具Gradle、SparkJava(一个微型Web服务框架)等编程库,以及单元测试框架JUnit。

第5章讨论既是面向对象编程语言又是函数式编程语言的Scala。该章介绍了Scala的安装过程以及它自带的交互式shell的用法;通过使用这个交互式shell,你可动态地输入并执行Scala代码,而无需先对代码进行编译。另外,还讨论了Scala的面向对象功能和函数式编程功能。

第6章详细介绍如何使用流行工具包Akka创建一个基于控制台的简单应用程序。Akka是一个专门为编写可伸缩的应用程序而设计的工具包,这种应用程序能够充分利用现代的多核处理器。该章详细讨论了很多Akka概念,如基于Actor的系统。为构建项目,使用了Scala Build Tool(Scala Build Tool,SBT),还使用了ScalaTest库来编写单元测试。

第7章介绍Clojure的基础知识。Clojure是一种动态的函数式编程语言,其设计灵感来自并非面向对象的语言Lisp。与Scala一样,Clojure也自带了一个交互式shell,可用于执行该章提供的各个示例。该章还讨论了一种用于在多线程应用程序中处理状态的技术——代理。

第8章详细介绍如何开发两个较小的项目。其中一个项目基于函数式编程语言(尤其是Lisp)中常用的技术monad,另一个项目是一个Web应用程序,它是使用流行的微型Web框架Luminus开发的。构建这两个项目时,使用的构建工具都是Leiningen。

第9章讨论JetBrain推出的静态类型编程语言Kotlin。该章阐述了Kotlin提供的可安全地处理null的类型系统,讨论了数据类、lambda和内联函数等功能,还介绍了Kotlin的过程性编程功能。

第10章详细介绍如何使用工具包JavaFX创建一个基于GUI的桌面应用程序。为构建这个项目,使用了Apache Maven;而为查找并修复bug,使用了Eclipse IDE的调试器。

第11章介绍动态编程语言Groovy。Groovy是最先推出的JVM语言之一,虽然在很大程度上它是动态语言,但也支持编译静态类型的代码,该章对这两种使用方式都做了介绍。另外,该章还探索了Groovy开发包,这是随Groovy语言一起发布的一个库,包含大量的内置类。

第12章详细介绍如何使用Groovy创建一个Web服务。这个Web服务是使用Vert.x框架创建的,它使用Java Database Connectivity(JDBC)标准从内嵌的数据库管理系统获取数据,并使用Groovy开发包中的类来生成XML。

附录A介绍了另外5种基于JVM的语言,它们大多是主流语言的方言:Oracle Nashorn(JavaScript)、Jython(Python)、JRuby(Ruby)、Frege(Haskell)和Ceylon(Red Hat推出的一种静态类型语言)。

附录B给出了各章末尾的小测验的答案。