【第一部分 Java介绍9】
第1章 Java环境介绍11
1.1 Java语言、JVM和生态系统11
1.2 Java和JVM简史16
1.3 Java程序的生命周期17
1.4 Java的安全性19
1.5 Java和其他语言的比较20
1.6 回应对Java的一些批评21
第2章 Java的基本句法24
2.1 Java程序概览25
2.2 词法结构25
2.3 基本数据类型29
2.4 表达式和运算符36
2.5 语句52
2.6 方法69
2.7 类和对象75
2.8 数组79
2.9 引用类型86
2.10 包和Java命名空间90
2.11 Java源文件的结构94
2.12 定义并运行Java程序95
2.13 小结96
第3章 Java面向对象编程97
3.1 类简介97
3.2 字段和方法99
3.3 创建和初始化对象105
3.4 子类与继承109
3.5 数据隐藏和封装120
3.6 抽象类和方法127
3.7 修饰符小结131
第4章 Java类型系统133
4.1 接口133
4.2 Java泛型141
4.3 枚举和注解153
4.4 lambda表达式157
4.5 嵌套类型164
4.6 无法表示的类型和var174
4.7 小结175
第5章 Java的面向对象设计177
5.1 Java的值177
5.2 java.lang.Object类的重要方法178
5.3 面向对象设计概要182
5.4 带有lambda表达式的面向对象设计192
5.5 异常和异常处理195
5.6 Java编程的安全性197
第6章 Java实现内存管理和并发编程的方式199
6.1 Java内存管理的基本概念199
6.2 JVM优化垃圾回收的方式203
6.3 HotSpot堆205
6.4 终结机制208
6.5 Java对并发编程的支持211
6.6 使用线程221
6.7 小结223
【第二部分 使用Java平台225】
第7章 编程和文档约定227
7.1 命名和大小写约定227
7.2 实用的命名方式229
7.3 Java文档注释230
7.4 doclet238
7.5 可移植程序的约定239
第8章 使用Java集合242
8.1 集合API简介242
8.2 Java流和lambda表达式261
8.3 小结268
第9章 处理常见的数据格式269
9.1 文本269
9.2 数字和数学运算276
9.3 在Java 8中处理日期和时间281
9.4 小结287
第10章 文件处理和I/O288
10.1 经典的Java I/O288
10.2 现代的Java I/O294
10.3 NIO中的通道和缓冲区297
10.4 异步I/O300
10.5 网络303
第11章 类加载、反射和方法句柄309
11.1 类文件、类对象和元数据309
11.2 类加载的各个阶段311
11.3 安全的编程和类加载314
11.4 应用类加载知识315
11.5 反射318
11.6 方法句柄323
第12章 Java平台模块化327
12.1 为什么要模块化328
12.2 自行开发模块331
12.3 模块化的问题340
12.4 小结342
第13章 平台工具344
13.1 命令行工具344
13.2 介绍JShell360
13.3 小结363
附录A 附加工具365
作者简介384
封面简介384