译者序
前言
致谢
第1章 Java 8的流库 1
1.1 从迭代到流的操作 1
1.2 流的创建 3
1.3 f?ilter、map和f?latMap方法 8
1.4 抽取子流和组合流 9
1.5 其他的流转换 10
1.6 简单约简 11
1.7 Optional类型 13
1.8 收集结果 19
1.9 收集到映射表中 24
1.10 群组和分区 27
1.11 下游收集器 28
1.12 约简操作 32
1.13 基本类型流 34
1.14 并行流 39
第2章 输入与输出 43
2.1 输入/输出流 43
2.2 读写二进制数据 61
2.3 对象输入/输出流与序列化 70
2.4 操作文件 86
2.5 内存映射文件 99
2.6 文件加锁机制 107
2.7 正则表达式 109
第3章 XML 120
3.1 XML概述 120
3.2 XML文档的结构 122
3.3 解析XML文档 124
3.4 验证XML文档 133
3.5 使用XPath来定位信息 148
3.6 使用命名空间 152
3.7 流机制解析器 154
3.8 生成XML文档 162
3.9 XSL转换 171
第4章 网络 180
4.1 连接到服务器 180
4.2 实现服务器 186
4.3 获取Web数据 199
4.4 HTTP客户端 215
4.5 发送E-mail 221
第5章 数据库编程 225
5.1 JDBC的设计 225
5.2 结构化查询语言 227
5.3 JDBC配置 232
5.4 使用JDBC语句 237
5.5 执行查询操作 246
5.6 可滚动和可更新的结果集 256
5.7 行集 261
5.8 元数据 265
5.9 事务 274
5.10 Web与企业应用中的连接管理 278
第6章 日期和时间API 280
6.1 时间线 280
6.2 本地日期 284
6.3 日期调整器 288
6.4 本地时间 289
6.5 时区时间 290
6.6 格式化和解析 294
6.7 与遗留代码的互操作 298
第7章 国际化 300
7.1 locale 300
7.2 数字格式 305
7.3 日期和时间 311
7.4 排序和规范化 318
7.5 消息格式化 323
7.6 文本输入和输出 327
7.7 资源包 330
7.8 一个完整的例子 333
第8章 脚本、编译与注解处理 348
8.1 Java平台的脚本机制 348
8.2 编译器API 358
8.3 使用注解 367
8.3.1 注解简介 368
8.3.2 示例:注解事件处理器 369
8.4 注解语法 373
8.5 标准注解 379
8.6 源码级注解处理 383
8.7 字节码工程 388
第9章 Java平台模块系统 395
9.1 模块的概念 395
9.2 对模块命名 396
9.3 模块化的“Hello, World!”程序 397
9.4 对模块的需求 398
9.5 导出包 400
9.6 模块化的JAR 403
9.7 模块和反射式访问 404
9.8 自动模块 406
9.9 不具名模块 408
9.10 用于迁移的命令行标识 409
9.11 传递的需求和静态的需求 410
9.12 限定导出和开放 411
9.13 服务加载 412
9.14 操作模块的工具 414
第10章 安全 417
10.1 类加载器 417
10.2 安全管理器与访问权限 429
10.3 用户认证 446
10.4 数字签名 459
10.5 加密 472
第11章 高级Swing和图形化编程 483
11.1 表格 483
11.2 树 513
11.3 高级AWT 544
11.4 像素图 583
11.5 打印 604
第12章 本地方法 632
12.1 从Java程序中调用C函数 633
12.2 数值参数与返回值 637
12.3 字符串参数 639
12.4 访问域 644
12.5 编码签名 648
12.6 调用Java方法 650
12.7 访问数组元素 656
12.8 错误处理 659
12.9 使用调用API 663
12.10 完整的示例:访问Windows注册表 668