商品参数
| Java核心技术(卷II):[]特性(原书第10版) |
| | 定价 | 139.00 |
| 出版社 | 机械工业出版社 |
| 版次 | 1 |
| 出版时间 | 2017年09月 |
| 开本 | 16开 |
| 作者 | 美 凯 S. 霍斯特曼 |
| 装帧 | 平装-胶订 |
| 页数 | 803 |
| 字数 | |
| ISBN编码 | 9787111573319 |
本书是Java领域有影响力和价值的著作之一,由拥有20多年教学与研究经验的Java技术[]撰写(获Jolt大奖),与《Java编程思想》齐名,10余年[]畅销不衰,广受好评。第10版根据JavaSE8[]更新,同时修正了第9版中的不足,系统[]讲解了Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。
目 录 译者序 前言 第1章 Java SE 8的流库 1 1.1 从迭代到流的[]作 1 1.2 流的创建 3 1.3 f?ilter、map和f?latMap方法 6 1.4 抽取子流和连接流 8 1.5 其他的流转换 8 1.6 简单约简 9 1.7 Optional类型 11 1.7.1 如何使用Optional值 11 1.7.2 不适合使用Optional值的方式 12 1.7.3 创建Optional值 13目 录
译者序
前言
第1章 Java SE 8的流库 1
1.1 从迭代到流的[]作 1
1.2 流的创建 3
1.3 f?ilter、map和f?latMap方法 6
1.4 抽取子流和连接流 8
1.5 其他的流转换 8
1.6 简单约简 9
1.7 Optional类型 11
1.7.1 如何使用Optional值 11
1.7.2 不适合使用Optional值的方式 12
1.7.3 创建Optional值 13
1.7.4 用f?latMap来构建Optional值的函数 13
1.8 收集结果 15
1.9 收集到映射表中 19
1.10 群组和分区 23
1.11 下游收集器 24
1.12 约简[]作 28
1.13 基本类型流 29
1.14 并行流 34
第2章 输入与输出 39
2.1 输入/输出流 39
2.1.1 读写字节 39
2.1.2 完整的流家族 42
2.1.3 组合输入/输出流过滤器 45
2.2 文本输入与输出 48
2.2.1 如何写出文本输出 49
2.2.2 如何读入文本输入 51
2.2.3 以文本格式存储对象 52
2.2.4 字符编码方式 55
2.3 读写二进制数据 57
2.3.1 DataInput和DataOutput接口 57
2.3.2 随机访问文件 59
2.3.3 ZIP文档 63
2.4 对象输入/输出流与序列化 66
2.4.1 保存和加载序列化对象 66
2.4.2 理解对象序列化的文件格式 70
2.4.3 修改默认的序列化机制 75
2.4.4 序列化单例和类型安全的枚举 77
2.4.5 版本管理 78
2.4.6 为克隆使用序列化 80
2.5 []作文件 83
2.5.1 Path 83
2.5.2 读写文件 85
2.5.3 创建文件和目录 87
2.5.4 复制、移动和删除文件 88
2.5.5 获取文件信息 89
2.5.6 访问目录中的项 91
2.5.7 使用目录流 92
2.5.8 ZIP文件系统 95
2.6 内存映射文件 96
2.6.1 内存映射文件的性能 96
2.6.2 缓冲区数据结构 103
2.6.3 文件加锁机制 105
2.7 正则表达式 106
第3章 XML 117
3.1 XML概述 117
3.1.1 XML文档的结构 119
3.2 解析XML文档 122
3.3 验证XML文档 132
3.3.1 文档类型定义 133
3.3.2 XML Schema 139
3.3.3 实用示例 142
3.4 使用XPath来定位信息 154
3.5 使用命名空间 159
3.6 流机制解析器 162
3.6.1 使用SAX解析器 162
3.6.2 使用StAX解析器 166
3.7 生成XML文档 170
3.7.1 不带命名空间的文档 170
3.7.2 带命名空间的文档 170
3.7.3 写出文档 171
3.7.4 示例:生成SVG文件 172
3.7.5 使用StAX写出XML文档 174
3.8 XSL转换 181
第4章 网络 191
4.1 连接到服务器 191
4.1.1 使用telnet 191
4.1.2 用Java连接到服务器 193
4.1.3 套接字超时 195
4.1.4 因特网地址 196
4.2 实现服务器 198
4.2.1 服务器套接字 198
4.2.2 为多个客户端服务 201
4.2.3 半关闭 204
4.3 可中断套接字 205
4.4 获取Web数 211
4.4.1 URL和URI 211
4.4.2 使用URLConnection获取信息 213
4.4.3 提交表单数据 220
4.5 发送E-mail 228
第5章 数据库编程 232
5.1 []BC的设计 232
5.1.1 []BC驱动程序类型 233
5.1.2 []BC的典型用法 234
5.2 结构化查询语言 234
5.3 []BC配置 239
5.3.1 数据库URL 240
5.3.2 驱动程序JAR文件 240
5.3.3 启动数据库 240
5.3.4 注册驱动器类 241
5.3.5 连接到数据库 242
5.4 使用[]BC语句 244
5.4.1 执行SQL语句 244
5.4.2 管理连接、语句和结果集 247
5.4.3 分析SQL异常 248
5.4.4 组装数据库 250
5.5 执行查询[]作 254
5.5.1 预备语句 254
5.5.2 读写LOB 259
5.5.3 SQL转义 261
5.5.4 多结果集 262
5.5.5 获取自动生成的键 263
5.6 可滚动和可更新的结果集 263
5.6.1 可滚动的结果集 264
5.6.2 可更新的结果集 266
5.7 行集 269
5.7.1 构建行集 270
5.7.2 被缓存的行集 270
5.8 元数据 273
5.9 事务 282
5.9.1 用[]BC对事务编程 282
5.9.2 保存点 283
5.9.3 批量更新 283
5.10 []SQL类型 285
5.11 Web与企业应用中的连接管理 286
第6章 日期和时间API 288
6.1 时间线 288
6.2 本地时间 291
6.3 日期调整器 294
6.4 本地时间 295
6.5 时区时间 296
6.6 格式化和解析 299
6.7 与遗留代码的互[]作 302
第7章 国际化 304
7.1 Locale对象 304
7.2 数字格式 309
7.3 货币 314
7.4 日期和时间 315
7.5 排序和范化 321
7.6 消息格式化 327
7.6.1 格式化数字和日期 327
7.6.2 选择格式 329
7.7 文本文件和字符集 331
7.7.1 文本文件 331
7.7.2 行结束符 331
7.7.3 控制台 331
7.7.4 日志文件 332
7.7.5 UTF-8字节顺序标志 332
7.7.6 源文件的字符编码 333
7.8 资源包 333
7.8.1 定位资源包 334
7.8.2 属性文件 335
7.8.3 包类 335
7.9 一个完整的例子 337
第8章 脚本、编译与注解处理 352
8.1 Java平台的脚本 352
8.1.1 获取脚本引擎 352
8.1.2 脚本赋值与绑定 353
8.1.3 重定向输入和输出 355
8.1.4 调用脚本的函数和方法 356
8.1.5 编译脚本 357
8.1 显示全[]信息
Java核心技术(卷II): 并发与网络编程 (原书第10版) 本书是享誉全球的Java开发经典教程《Java核心技术》的第二卷,聚焦于Java平台上最为关键和复杂的两大领域——并发编程与网络通信。在当今多核处理器和分布式系统日益普及的时代,掌握高效、健壮的并发机制和可靠的网络通信技术,对于开发高性能、可扩展的应用程序至关重要。本卷将系统深入地剖析Java在这些领域提供的强大工具和最佳实践,帮助读者构建出能够应对现代应用挑战的强大Java程序。 并发编程:驾驭多线程世界的艺术 并发是现代软件开发的核心挑战之一。本书将带领读者深入理解Java语言在并发方面的精髓,从基础的线程创建与管理,到复杂的同步机制和并发工具,层层递进。 线程基础与生命周期: 详细阐述线程的创建方式(继承Thread类、实现Runnable接口)、线程的状态转换(新建、就绪、运行、阻塞、终止)以及线程间的协作。理解线程的生命周期是编写可靠并发程序的基础。 同步与互斥: 深入探讨`synchronized`关键字的用法,包括方法锁和块锁,以及`volatile`关键字在保证内存可见性方面的作用。通过丰富的示例,展示如何解决多线程环境下数据竞争和临界区访问问题,确保程序的正确性。 Java内存模型 (JMM): 揭示Java虚拟机如何管理线程的内存访问,理解JMM的happens-before原则,以及它如何影响并发程序的行为。这是理解和避免并发bug的关键。 高级并发工具: 详细介绍`java.util.concurrent`包中的强大工具,如: Executor框架: 学习如何使用线程池来管理线程生命周期,提高资源利用率,避免频繁创建和销毁线程的开销。理解`ExecutorService`、`ThreadPoolExecutor`等核心接口和类。 并发集合类: 掌握`ConcurrentHashMap`、`CopyOnWriteArrayList`等线程安全的数据结构,它们提供了比传统`Collections`类更好的并发性能和安全性。 同步器 (Synchronizers): 深入学习`CountDownLatch`、`CyclicBarrier`、`Semaphore`、`Exchanger`等高级同步工具,它们能够帮助开发者轻松实现复杂的线程协作场景,如任务分解与汇聚、资源池管理等。 并发队列: 学习`BlockingQueue`接口及其实现类(如`ArrayBlockingQueue`、`LinkedBlockingQueue`),它们在生产者-消费者模式等场景中发挥着核心作用。 原子变量 (Atomic Variables): 了解`AtomicInteger`、`AtomicLong`等原子类,它们提供了无锁的原子性操作,在某些情况下能带来显著的性能提升。 线程池的调优与管理: 学习如何根据应用场景选择合适的线程池类型、配置线程池大小、设置拒绝策略等,以达到最佳的并发性能和稳定性。 并发中的陷阱与最佳实践: 识别常见的并发错误,如死锁、活锁、线程饥饿等,并学习如何规避这些问题。总结一套行之有效的并发编程模式和设计原则。 网络通信:构建分布式世界的桥梁 随着互联网和分布式应用的蓬勃发展,网络编程能力成为Java开发者的必备技能。本卷将系统讲解Java在网络通信领域的强大支持,从基础的Socket编程到高级的网络协议和框架。 Socket编程基础: 详细讲解TCP和UDP协议的工作原理,以及Java提供的`Socket`和`ServerSocket`类,如何实现客户端和服务器之间的可靠数据传输。 网络协议栈: 理解HTTP、FTP等常用应用层协议的工作机制,以及Java如何通过`java.net`包中的类来支持这些协议。 URL与URI: 学习如何使用`URL`和`URI`类来表示和解析网络资源。 NIO (Non-blocking I/O): 深入理解Java NIO的非阻塞I/O模型,包括`Channel`、`Buffer`、`Selector`等核心概念。学习如何利用NIO构建高性能、高并发的网络应用程序,有效处理大量并发连接。 Netty框架: 学习业界广泛应用的、高性能的异步事件驱动网络应用框架Netty。掌握Netty的核心组件,如`Bootstrap`、`ChannelPipeline`、`Handler`等,并学习如何使用Netty构建复杂的客户端和服务器端应用,如高性能代理服务器、实时通信系统等。 并发网络服务器设计: 结合并发编程的知识,学习如何设计和实现能够处理大量并发客户端请求的高性能网络服务器。 网络安全基础: 了解SSL/TLS协议,以及Java如何支持安全的网络通信。 分布式系统中的网络考量: 探讨在分布式系统中进行网络通信时需要考虑的关键问题,如延迟、可靠性、容错性等。 本书特色 深入且全面: 覆盖Java并发和网络编程的各个重要方面,从基础概念到高级技术,无所不包。 理论与实践并重: 每一个概念都配以清晰的解释和大量精心设计的代码示例,帮助读者理解和掌握。 注重性能与健壮性: 强调如何编写高效、稳定、易于维护的并发和网络程序。 面向实际应用: 提供的解决方案和示例都紧密结合实际开发需求,能够直接应用于生产环境。 权威的讲解: 基于Java平台标准,由经验丰富的专家撰写,是学习Java核心技术的理想参考。 通过学习《Java核心技术(卷II): 并发与网络编程》,您将能够自信地驾驭Java平台上的复杂并发场景,构建出高性能、高可靠性的网络应用,为您的软件开发能力带来质的飞跃。无论您是希望提升现有Java技能的开发者,还是正在学习Java的初学者,本书都将是您不可或缺的宝贵资源。
这本书在 GUI 编程和图形图像处理方面的内容,也给我带来了不少惊喜。我一直以为 Java 的 GUI 编程已经有些过时了,但这本书让我看到了 Swing 和 JavaFX 依然拥有强大的生命力,并且在现代应用开发中依然有其价值。作者对 Swing 的讲解非常全面,从基础的组件使用到复杂的布局管理,再到事件处理机制,都做了详尽的阐述。特别是关于事件监听器和多线程在 GUI 中的应用,让我理解了如何避免 GUI 界面卡死,如何实现流畅的用户交互。而对于 JavaFX,这本书也做了很好的介绍,让我了解了它在构建现代化、富媒体用户界面方面的优势。更让我感到兴奋的是,书中还涉及了图形图像处理的内容,比如如何加载、显示、编辑图片,如何实现简单的图像滤镜效果等等。这对我这个对视觉设计和图像处理有兴趣的人来说,简直是打开了一扇新世界的大门。这本书让我明白,即使是看似基础的 Java 技术,只要深入挖掘,依然能找到许多有趣且实用的应用。