书籍作者: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