猜你喜欢
Java 9 口袋指南(第4版)

Java 9 口袋指南(第4版)

书籍作者:Robert ISBN:9787121346026
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2716
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书以通俗易懂的语言介绍了Java语言的语法、类型、并发编程等基础知识,同时还以样例的形式讲解了Lambda表达式、Java模块系统、JShell这些Java 8和Java 9新引入的特性。本书不仅能够满足初学者了解、掌握Java语言的需要,还能帮助资深的工程师快速熟悉和把握Java新技术的发展趋势。本书内容简洁、样例丰富,可以作为Java开发人员案头常备的参考书籍。

作者简介

Robert Liguori是资深的软件开发者,在航空工业领域提供支持。Robert 在新泽西理查得斯道克顿大学取得计算机科学与信息技术学士学位,同时也是Oracle认证的Java专家,撰写过多部 Java 编程语言与 NetBeans IDE 方面的认证图书,其中包括Java Pocket Guide系列。

张卫滨,资深Java工程师,具有十年以上面向对象编程语言开发经验,现居大连。作为一位笔耕不辍的技术书籍译者,陆续翻译大量Java技术方向的重要书籍,包括《spring实战》《大规模Java平台虚拟化与调优》《Java应用架构设计:模块化模式与OSGi 》《精通Spring MVC 4》等。

编辑推荐
适读人群 :实践开发者,程序员

在开发和调试Java程序时,《Java 9 口袋指南》能够为你解答Java编程语言及其平台的困惑。在本书中,你将会发现非常有用且简洁的样例、表格、图以及列表——包括Java 9的特性,如模块化源码和新的JShell交互式命令行REPL。本书非常便于携带,不管你是在办公室、实验室,还是在路上,都可以随时翻阅。

本书中同时提供用于准备Oracle认证Java程序员考试的资料。

■ 快速查阅Java语言的细节,比如命名约定、类型、语句和代码块、面向对象编程

■ 获取Java SE平台的细节,包括开发基础、内存管理、并发以及泛型

■ 使用Java 9的新特性,包括模块化源码和JShell

■ 掌握基础的输入/输出、NIO 2.0、Java集合框架和Java Scripting API

■ 获取Fluent API、第三方工具以及统一建模语言(UML)的补充知识


前言

译者序

在程序员群体中,有两个未解之谜 :那就是最好的编程语言和最好的编辑器到底是什么。关于语言的争论在程序员群体中是司空见惯的现象,至于哪个是世界上最好的编程语言也是见仁见智的,但不可否认的是 Java 在企业级和互联网开发中依然占据着重要的地位。除了“跨平台”这一特性早年带来的红利外,Java 能够 20 多年长盛不衰的原因在于它是一门不断演进和优化的语言。

尽管被其他语言的拥趸诟病演化缓慢,但 Java 确实在不断地革新,吸收和借鉴其他语言优秀的特征,比如 Lambda 表达式、函数式编程、泛型等。通过语言层面的改善,开发人员可以编写更加现代和更加简洁的代码,同时能够享受到软硬件架构体系演化所带来的收益。Java 另一个巨大的优势在于活跃的开源社区,像 Spring、Hibernate、Apache 等开源项目和组织,简化了大规模企业级 Java 应用的开发,抽离了技术底层的关注点,能够让我们专注于业务开发。因此,不管是 J2EE、SOA,还是近两年火热的微服务架构,都离不开 Java 语言的身影。

既然 Java 语言如此受欢迎,那么关于 Java 语言的技术图书用浩如烟海来形容就丝毫不过分了。在这方面既有专注于语言用法的经典图书,也有深入底层 JVM 原理的佳作,那么这本《Java口袋指南》的特殊之处在哪里呢?

这不是一本深入讲解 Java 语法细节的图书,也不是分析 JVM实现原理的书,该书以 Java 的基本用法作为切入点,在介绍Java 已有功能的基础上,重点讲解了 Java 8 和 Java 9 中的一些新特性,比如 Lambda 表达式、JShell、模块系统,能够让读者快速理解和掌握最新的技术。本书行文简洁,同时附带大量样例,能够让读者在示例中理解相关特性的原理和用法。

所谓“九层之台,起于累土”,我们只有掌握了 Java 的基本功能,夯实了知识基础,再去学习各种日新月异的开发框架,应对层出不穷的架构理念,才会得心应手。本书的英文版已经畅销多年,作者会根据 Java 语言的发展不断对内容进行更新和补充,希望中文版的发行能够帮助到更多的中国程序员朋友。

尽管在翻译的过程中,我力争达到准确和通畅,但限于水平和时间,肯定还有许多的不足或纰漏之处,热忱期待您提出意见,希望本书能够对您有用,您可以通过 [email protected]联系到我,祝阅读愉快。



前言

《Java 9 口袋指南》一书的目标是成为读者的手边书,本书提供了 Java 语言和平台标准特性的快速指南。

《Java 9 口袋指南》提供了开发或调试 Java 程序所需的知识,包括了有用的编程样例、表格、图和列表。

本书中所介绍的 Java 是基于 Java SE 9 讲解的,包括了 80 个以上的 JDK 增强计划(JDK Enhancement Proposal,JEP)的子集。

本书中介绍的 Java 包含了对语言的通用修改以及新的 Java Shell和 Java 模块系统。本书将会取代之前的 Java Pocket Guide、Java 7 Pocket Guide 和 Java 8 Pocket Guide。

处于一致性和读者兴趣的考虑,第 4 版《Java 9 口袋指南》的主要代码对 Gliesians Web 应用(http://gliesians.com/index-genealogy.faces)的代码片段进行了更新。在编写本书的时候,Gliesians Web 应用的主要关注点在于提供免费的工具类,用于系谱学和小型无人机系统。

本书中还提供了准备 Oracle 认证程序员考试的资料。如果你考虑获取这样的 Java 证书,还可以购买 Edward Finegan 和 RobertLiguori 合著的 OCA Java SE 8 Programmer I Study Guide (Exam1Z0-808)(McGraw-Hill Osborne Media, 2015)。

本书结构

本书分为三部分 :第一部分详细介绍 Java 语言规范(JLS)和JEP 所衍生的 Java 编程语言。第二部分介绍了 Java 平台组件和相关话题。第三部分是附录,介绍了相关的支撑技术。


目录

前言 XIII

第 1 部分 语言

第 1 章 命名约定 3

缩略词 3

注解名 3

类名 4

常量名 4

枚举名称 4

泛型类型参数名 4

实例与静态变量名 5

接口名 5

方法名 5

包名 5

模块名 6

参数和本地变量名 6

第 2 章 词法元素 9

Unicode 与 ASCII 9

压缩字符串11

注释 11

关键字 12

识别符 13

分隔符 14

操作符 15

字面量 16

转义序列 19

Unicode 货币符号 20

第 3 章 基本类型 23

原始类型 23

原始类型的字面量 24

浮点实体 26

原始类型的数值提升 28

包装类 29

自动装箱和拆箱 30

第 4 章 引用类型 33

引用类型与原始类型的对比 34

默认值 34

引用对象的转换 36

原始类型与引用类型的转换 37

传递引用类型到方法中 37

引用类型的对比 38

拷贝引用类型 40

引用类型的内存分配与垃圾回收 42

第 5 章 面向对象编程 43

类和对象 43

可变长度的参数列表 49

抽象类与抽象方法 50

静态数据成员、静态方法、静态常量以及静态初始化器 51

接口 52

枚举 53

注解类型 54

函数式接口56

第 6 章 语句和代码块 57

表达式语句57

空语句 58

代码块 58

条件语句 58

迭代语句 60

控制转移 62

synchronized 语句 63

断言语句 63

异常处理语句 64

第 7 章 异常处理 65

异常层级结构 65

检查型 / 非检查型异常和错误66

常见的检查型 / 非检查型异常和错误 67

异常处理的关键字 69

异常处理的过程 74

定义自己的异常类 74

打印异常信息 75

第 8 章 Java 修饰符 77

访问修饰符78

其他(非访问)修饰符 79

修饰符的编码 80

第 2 部分 平台

第 9 章 Java 平台,标准版 83

常用的 Java SE API 库 83

第 10 章 开发的基础工具 97

Java 运行时环境 97

Java 开发工具集 97

Java 程序结构99

命令行工具100

类路径 105

第 11 章 内存管理 107

垃圾收集器107

内存管理工具 109

命令行参数110

调整 Java 堆的大小 113

元空间 113

与 GC 进行交互 113

第 12 章 基本输入和输出 115

标准的流 in、out 和 err 115

标准输入和输出类的层级结构 116

文件读取和写入 117

Socket 读取和写入 118

序列化 120

压缩和解压文件 121

第 13 章 新 I/O API(NIO2) 123

Path 接口 123

Files 类 124

其他特性 125

第 14 章 并发127

创建线程 127

线程状态 128

线程优先级129

常用方法 129

同步 130

并发工具集132

第 15 章 Java 集合框架 135

Collection 接口 135

实现 136

集合框架方法 136

集合类的算法 137

算法的效率138

Comparator 函数式接口 139

便利的工厂方法 142

第 16 章 泛型框架 143

泛型类与接口 143

具有泛型的构造器 144

替换原则 145

类型参数、通配符与边界 145

Get 和 Put 原则 146

泛型具体化147

非泛型类型中的泛型方法 148

第 17 章 Java 脚本 API 149

脚本语言 149

脚本引擎实现 149

搭建脚本语言和引擎环境 151

第 18 章 日期和时间 API 155

与遗留系统的互操作 156

区域性日历156

ISO 日历 156

第 19 章 Lambda 表达式 163

λE 基础 163

特定用途的函数式接口 166

通用的函数式接口 167

关于 λE 的资源 168

第 20 章 JShell :Java Shell 171

起步 171

片段 172

使用 JShell 173

JShell 的特性 180

JShell 命令小结 184

第 21 章 Java 模块系统 187

Jigsaw 项目 187

Java 模块 188

编译模块 190

模块化 JDK 191

jdeps 194

定义模块 196

导出包 196

声明依赖 197

传递性依赖197

定义服务提供者 198

jlink 200

第 3 部分 附录

附录 A Fluent API 203

附录 B 第三方工具 205

附录 C UML 基础 215

索引 225