首页>参考读物>计算机科学与技术>软件与程序设计

Java核心技术 卷II:高级特性(原书第12版)
作者 : [美]凯·S.霍斯特曼(Cay S. Horstmann) 著
译者 : 陈昊鹏 译
出版日期 : 2023-03-20
ISBN : 978-7-111-71974-8
定价 : 149.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 :
开本 : 16
原书名 : Core Java, Volume II: Advanced Features, Twelfth Edition
原出版社: Pearson Education Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书涵盖了完整的对高级UI特性、企业编程、网络、安全和Java强大的模块系统等内容的讨论。书中对Java复杂的新特性进行了深入而全面的研究,展示了如何使用它们来构建具有专业品质的应用程序,作者所设计的经过全面完整测试的示例反映了当今的Java风格和实践,这些示例设计精心,使其易于理解并且实践价值极高,从而使读者可以以这些示例为基础来编写自己的代码。

图书特色

涵盖Java 17 新特性

上架指导

计算机\程序设计

封底文字

对经验丰富的程序员来说,如果希望为实际应用编写出健壮的代码,那么《Java核心技术》绝对是一本业内领先的、言简意赅的宝典。如今,《Java核心技术 卷II:高级特性(原书第12版)》针对Java 17的新特性和改进进行了修订。与以往一样,所有的章节都做了全面更新,移除了过时的内容,并且详细讨论了各种新API。
本书专注于程序员进行专业软件开发时必须了解的高级主题,对诸多内容进行了细致剖析,涵盖企业级程序设计、网络、数据库、安全、模块化、国际化、代码处理和本地方法,并且对流、XML、日期和时间API分别用整章进行了阐述。此外,有关高级Swing和图形化编程的章节涵盖了对客户端用户界面以及服务器端图形和图像生成都适用的各项技术。
本书对Java复杂的新特性进行了深入而全面的阐释,展示了如何使用它们来构建具有专业品质的应用程序。作者所设计的经过全面、完整测试的示例代码反映了当今的Java风格和最佳实践,这些示例设计精心、易于理解且实践价值极高,读者可编写以这些示例为基础的代码。

阅读完本书,你将能够:
掌握用于编写可靠Java代码所需的高级技术、惯用法和最佳实践。
充分利用改进的Java I/O API、对象序列化和正则表达式。
高效地连接到网络服务、实现服务器和新的HTTP/2客户端程序以及获取Web数据。
通过使用脚本和编译器API处理代码,以及使用注解生成代码和文件。
加深对Java平台模块系统的理解,包括其最新的优化。
充分利用Java安全模型、用户认证,以及安全库的密码功能。
预览功能强大的用于访问“外部”函数和存储的新API。

欢迎阅读《Java核心技术 卷I:开发基础(原书第12版)》,该书对Java编程基础知识进行了阐述,包括对象、泛型、集合、lambda表达式、并发和函数式编程等。

图书目录

第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.7.1 获取Optional值 13
1.7.2 消费Optional值 13
1.7.3 管道化Optional值 14
1.7.4 不适合使用Optional值的方式 15
1.7.5 创建Optional值 16
1.7.6 用f?latMap构建Optional值的函数 16
1.7.7 将Optional转换为流 17
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.1.1 读写字节 43
2.1.2 完整的流家族 46
2.1.3 组合输入/输出流过滤器 50
2.1.4 文本输入与输出 53
2.1.5 如何写出文本输出 53
2.1.6 如何读入文本输入 55
2.1.7 以文本格式存储对象 56
2.1.8 字符编码方式 59
2.2 读写二进制数据 61
2.2.1 DataInput和DataOutput接口 61
2.2.2 随机访问文件 63
2.2.3 ZIP文档 67
2.3 对象输入/输出流与序列化 70
2.3.1 保存和加载序列化对象 70
2.3.2 理解对象序列化的文件格式 74
2.3.3 修改默认的序列化机制 79
2.3.4 序列化单例和类型安全的枚举 81
2.3.5 版本管理 82
2.3.6 为克隆使用序列化 84
2.4 操作文件 86
2.4.1 Path 86
2.4.2 读写文件 89
2.4.3 创建文件和目录 90
2.4.4 复制、移动和删除文件 91
2.4.5 获取文件信息 92
2.4.6 访问目录中的项 94
2.4.7 使用目录流 95
2.4.8 ZIP文件系统 98
2.5 内存映射文件 99
2.5.1 内存映射文件的性能 99
2.5.2 缓冲区数据结构 105
2.6 文件加锁机制 107
2.7 正则表达式 109
2.7.1 正则表达式语法 109
2.7.2 匹配字符串 112
2.7.3 找出多个匹配 115
2.7.4 用分隔符来分割 117
2.7.5 替换匹配 117
第3章 XML 120
3.1 XML概述 120
3.2 XML文档的结构 122
3.3 解析XML文档 124
3.4 验证XML文档 133
3.4.1 文档类型定义 134
3.4.2 XML Schema 140
3.4.3 一个实践示例 142
3.5 使用XPath来定位信息 148
3.6 使用命名空间 152
3.7 流机制解析器 154
3.7.1 使用SAX解析器 154
3.7.2 使用StAX解析器 159
3.8 生成XML文档 162
3.8.1 不带命名空间的文档 162
3.8.2 带命名空间的文档 163
3.8.3 写出文档 163
3.8.4 使用StAX写出XML文档 165
3.8.5 示例:生成SVG文件 170
3.9 XSL转换 171
第4章 网络 180
4.1 连接到服务器 180
4.1.1 使用telnet 180
4.1.2 用Java连接到服务器 182
4.1.3 套接字超时 184
4.1.4 因特网地址 185
4.2 实现服务器 186
4.2.1 服务器套接字 186
4.2.2 为多个客户端服务 189
4.2.3 半关闭 192
4.2.4 可中断套接字 193
4.3 获取Web数据 199
4.3.1 URL和URI 199
4.3.2 使用URLConnection获取信息 201
4.3.3 提交表单数据 207
4.4 HTTP客户端 215
4.5 发送E-mail 221
第5章 数据库编程 225
5.1 JDBC的设计 225
5.1.1 JDBC驱动程序类型 226
5.1.2 JDBC的典型用法 227
5.2 结构化查询语言 227
5.3 JDBC配置 232
5.3.1 数据库URL 232
5.3.2 驱动程序JAR文件 233
5.3.3 启动数据库 233
5.3.4 注册驱动器类 234
5.3.5 连接到数据库 234
5.4 使用JDBC语句 237
5.4.1 执行SQL语句 237
5.4.2 管理连接、语句和结果集 240
5.4.3 分析SQL异常 240
5.4.4 组装数据库 242
5.5 执行查询操作 246
5.5.1 预备语句 246
5.5.2 读写LOB 252
5.5.3 SQL转义 253
5.5.4 多结果集 254
5.5.5 获取自动生成的键 255
5.6 可滚动和可更新的结果集 256
5.6.1 可滚动的结果集 256
5.6.2 可更新的结果集 258
5.7 行集 261
5.7.1 构建行集 262
5.7.2 被缓存的行集 262
5.8 元数据 265
5.9 事务 274
5.9.1 用JDBC对事务编程 274
5.9.2 保存点 275
5.9.3 批量更新 275
5.9.4 高级SQL类型 277
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.1.1 为什么需要locale 300
7.1.2 指定locale 301
7.1.3 默认locale 303
7.1.4 显示名字 304
7.2 数字格式 305
7.2.1 格式化数字值 306
7.2.2 货币 310
7.3 日期和时间 311
7.4 排序和规范化 318
7.5 消息格式化 323
7.5.1 格式化数字和日期 324
7.5.2 选择格式 325
7.6 文本输入和输出 327
7.6.1 文本文件 327
7.6.2 行结束符 327
7.6.3 控制台 328
7.6.4 日志文件 328
7.6.5 UTF-8字节顺序标志 329
7.6.6 源文件的字符编码 329
7.7 资源包 330
7.7.1 定位资源包 330
7.7.2 属性文件 331
7.7.3 包类 332
7.8 一个完整的例子 333
第8章 脚本、编译与注解处理 348
8.1 Java平台的脚本机制 348
8.1.1 获取脚本引擎 348
8.1.2 脚本计算与绑定 349
8.1.3 重定向输入和输出 351
8.1.4 调用脚本的函数和方法 352
8.1.5 编译脚本 353
8.1.6 示例:用脚本处理GUI事件 354
8.2 编译器API 358
8.2.1 调用编译器 358
8.2.2 发起编译任务 359
8.2.3 捕获诊断消息 359
8.2.4 从内存中读取源文件 360
8.2.5 将字节码写出到内存中 360
8.2.6 示例:动态Java代码生成 362
8.3 使用注解 367
8.3.1 注解简介 368
8.3.2 示例:注解事件处理器 369
8.4 注解语法 373
8.4.1 注解接口 373
8.4.2 注解 375
8.4.3 注解各类声明 376
8.4.4 注解类型用法 377
8.4.5 注解this 378
8.5 标准注解 379
8.5.1 用于编译的注解 380
8.5.2 用于管理资源的注解 381
8.5.3 元注解 381
8.6 源码级注解处理 383
8.6.1 注解处理器 384
8.6.2 语言模型API 384
8.6.3 使用注解来生成源码 385
8.7 字节码工程 388
8.7.1 修改类文件 388
8.7.2 在加载时修改字节码 393
第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.1.1 类加载过程 418
10.1.2 类加载器的层次结构 419
10.1.3 将类加载器用作命名空间 420
10.1.4 编写你自己的类加载器 421
10.1.5 字节码校验 426
10.2 安全管理器与访问权限 429
10.2.1 权限检查 429
10.2.2 Java平台安全性 431
10.2.3 安全策略文件 434
10.2.4 定制权限 439
10.2.5 实现权限类 440
10.3 用户认证 446
10.3.1 JAAS框架 446
10.3.2 JAAS登录模块 451
10.4 数字签名 459
10.4.1 消息摘要 460
10.4.2 消息签名 463
10.4.3 校验签名 465
10.4.4 认证问题 467
10.4.5 证书签名 469
10.4.6 证书请求 469
10.4.7 代码签名 470
10.5 加密 472
10.5.1 对称密码 473
10.5.2 密钥生成 474
10.5.3 密码流 478
10.5.4 公共密钥密码 479
第11章 高级Swing和图形化编程 483
11.1 表格 483
11.1.1 一个简单表格 483
11.1.2 表格模型 486
11.1.3 对行和列的操作 489
11.1.4 单元格的绘制和编辑 503
11.2 树 513
11.2.1 简单的树 514
11.2.2 节点枚举 526
11.2.3 绘制节点 528
11.2.4 监听树事件 530
11.2.5 定制树模型 536
11.3 高级AWT 544
11.3.1 绘图操作流程 544
11.3.2 形状 546
11.3.3 区域 560
11.3.4 笔画 561
11.3.5 着色 567
11.3.6 坐标变换 569
11.3.7 剪切 574
11.3.8 透明与组合 575
11.4 像素图 583
11.4.1 图像的读取器和写入器 583
11.4.2 图像处理 591
11.5 打印 604
11.5.1 图形打印 604
11.5.2 打印多页文件 612
11.5.3 打印服务程序 620
11.5.4 流打印服务程序 622
11.5.5 打印属性 625
第12章 本地方法 632
12.1 从Java程序中调用C函数 633
12.2 数值参数与返回值 637
12.3 字符串参数 639
12.4 访问域 644
12.4.1 访问实例域 644
12.4.2 访问静态域 648
12.5 编码签名 648
12.6 调用Java方法 650
12.6.1 实例方法 650
12.6.2 静态方法 653
12.6.3 构造器 654
12.6.4 另一种方法调用 654
12.7 访问数组元素 656
12.8 错误处理 659
12.9 使用调用API 663
12.10 完整的示例:访问Windows注册表 668
12.10.1 Windows注册表概述 668
12.10.2 访问注册表的Java平台接口 669
12.10.3 以本地方法实现注册表访问函数 670

教学资源推荐
作者: [美]德洛莉丝 M. 埃特尔(Delores M. Etter) 著
作者: 刘艺
作者: [美] 尤金尼·E.米哈伊洛夫(Eugeniy E. Mikhailov) 著
参考读物推荐
作者: 陈春宝 阙子扬 钟飞 著
作者: [西班牙]大卫·米兰·埃斯克里瓦(David Millán Escrivá)[西班牙]维尼休斯·G.门东萨(Vinícius G. Mendonça) [美]普拉蒂克·乔希(Prateek Joshi)著
作者: 张良均 樊哲 位文超 刘名军 等著
作者: Ceph中国社区 著