Java核心技术 卷II:高级特性(第10版•英文版)(上下册)

978-7-115-45886-5
作者: 【美】Cay S. Horstmann(凯•S.霍斯特曼)
译者: 无
编辑: 杨海玲

图书目录:

目录

Chapter 1: The Java SE 8 Stream Library / Java SE 8流库  1

1.1 From Iterating to Stream Operations / 从迭代到流操作  2

1.2 Stream Creation / 创建流  5

1.3 The filter, map, and flatMap Methods / filter、map和flatMap方法   9

1.4 Extracting Substreams and Concatenating Streams / 提取子流和连接流  10

1.5 Other Stream Transformations / 其他流变换  11

1.6 Simple Reductions / 简单规约  12

1.7 The Optional Type / Optional类型  13

1.7.1 How to Work with Optional Values / 如何使用Optional值  14

1.7.2 How Not to Work with Optional Values / 不使用Optional值会有什么问题  15

1.7.3 Creating Optional Values / 创建Optional值  16

1.7.4 Composing Optional Value Functions with flatMap / 使用flatMap组合Optional值函数  16

1.8 Collecting Results / 收集结果  19

1.9 Collecting into Maps / 收集到Map中  24

1.10 Grouping and Partitioning / 分组与分区  28

1.11 Downstream Collectors / 下游的收集器  29

1.12 Reduction Operations / 规约操作  33

1.13 Primitive Type Streams / 基本类型的流  36

1.14 Parallel Streams / 并行流  41

Chapter 2: Input and Output / 输入与输出  47

2.1 Input/Output Streams / 输入/输出流  48

2.1.1 Reading and Writing Bytes / 读写字节   48

2.1.2 The Complete Stream Zoo / 流谱系概览  51

2.1.3 Combining Input/Output Stream Filters / 组合输入/输出流过滤器   55

2.2 Text Input and Output / 文本输入与输出  60

2.2.1 How to Write Text Output / 输出文本   60

2.2.2 How to Read Text Input / 输入文本  62

2.2.3 Saving Objects in Text Format / 以文本格式保存对象  63

2.2.4 Character Encodings / 字符编码  67

2.3 Reading and Writing Binary Data / 读写二进制数据  69

2.3.1 The DataInput and DataOutput interfaces / DataInput和DataOutput接口  69

2.3.2 Random-Access Files / 随机访问文件  72

2.3.3 ZIP Archives / ZIP文档  77

2.4 Object Input/Output Streams and Serialization / 对象输入/输出流与序列化  80

2.4.1 Saving and Loading Serializable Objects / 序列化对象的保存与加载  80

2.4.2 Understanding the Object Serialization File Format / 理解对象序列化文件格式   85

2.4.3 Modifying the Default Serialization Mechanism / 修改默认的序列化机制  92

2.4.4 Serializing Singletons and Typesafe Enumerations / 序列化单例和类型安全的枚举  94

2.4.5 Versioning / 版本管理  95

2.4.6 Using Serialization for Cloning / 将序列化用于克隆  98

2.5 Working with Files / 处理文件  100

2.5.1 Paths / 路径  101

2.5.2 Reading and Writing Files / 读写文件  104

2.5.3 Creating Files and Directories / 创建文件与目录  105

2.5.4 Copying, Moving, and Deleting Files / 复制、移动和删除文件   106

2.5.5 Getting File Information / 获取文件信息  108

2.5.6 Visiting Directory Entries / 访问目录条目   110

2.5.7 Using Directory Streams / 使用目录流   111

2.5.8 ZIP File Systems / ZIP文件系统  115

2.6 Memory-Mapped Files / 内存映射文件  116

2.6.1 Memory-Mapped File Performance / 内存映射文件的性能   116

2.6.2 The Buffer Data Structure / 缓冲区数据结构  124

2.6.3 File Locking / 文件锁  126

2.7 Regular Expressions / 正则表达式  128

Chapter 3: XML  143

3.1 Introducing XML / XML简介  144

3.1.1 The Structure of an XML Document / XML文档的结构  146

3.2 Parsing an XML Document / 解析XML文档  149

3.3 Validating XML Documents / 验证XML文档  162

3.3.1 Document Type Definitions / 文档类型定义  163

3.3.2 XML Schema / XML模式  172

3.3.3 A Practical Example / 实用示例  175

3.4 Locating Information with XPath / 使用XPath定位信息   190

3.5 Using Namespaces / 使用命名空间  196

3.6 Streaming Parsers / 流解析器  199

3.6.1 Using the SAX Parser / 使用SAX解析器  199

3.6.2 Using the StAX Parser / 使用StAX解析器  205

3.7 Generating XML Documents / 生成XML文档  208

3.7.1 Documents without Namespaces / 不带命名空间的文档   209

3.7.2 Documents with Namespaces / 带命名空间的文档   209

3.7.3 Writing Documents / 写文档  210

3.7.4 An Example: Generating an SVG File / 示例:生成SVG文件   211

3.7.5 Writing an XML Document with StAX / 使用StAX写XML文档  214

3.8 XSL Transformations / XSL转换  222

Chapter 4: Networking / 网络  233

4.1 Connecting to a Server / 连接到服务器  233

4.1.1 Using Telnet / 使用Telnet  233

4.1.2 Connecting to a Server with Java / 使用Java连接到服务器  236

4.1.3 Socket Timeouts / 套接字超时  238

4.1.4 Internet Addresses / 因特网地址  239

4.2 Implementing Servers / 实现服务器  241

4.2.1 Server Sockets / 服务器套接字  242

4.2.2 Serving Multiple Clients / 为多个客户端服务  245

4.2.3 Half-Close / 半关闭  249

4.3 Interruptible Sockets / 可中断套接字  250

4.4 Getting Web Data / 获取Web数据  257

4.4.1 URLs and URIs / URL和URI  257

4.4.2 Using a URLConnection to Retrieve Information / 使用URLConnection获取信息  259

4.4.3 Posting Form Data / 提交表单数据  267

4.5 Sending E-Mail / 发送电子邮件  277

Chapter 5: Database Programming / 数据库编程  281

5.1 The Design of JDBC / JDBC的设计  282

5.1.1 JDBC Driver Types / JDBC驱动程序分类  283

5.1.2 Typical Uses of JDBC / JDBC的典型用法  284

5.2 The Structured Query Language / 结构化查询语言  285

5.3 JDBC Configuration / JDBC配置  291

5.3.1 Database URLs / 数据库URL  292

5.3.2 Driver JAR Files / 驱动程序JAR文件  292

5.3.3 Starting the Database / 启动数据库  293

5.3.4 Registering the Driver Class / 注册驱动程序类  294

5.3.5 Connecting to the Database / 连接到数据库  294

5.4 Working with JDBC Statements / 使用JDBC语句  297

5.4.1 Executing SQL Statements / 执行SQL语句  298

5.4.2 Managing Connections, Statements, and Result Sets / 管理连接、语句和结果集  301

5.4.3 Analyzing SQL Exceptions / 分析SQL异常  302

5.4.4 Populating a Database / 填充数据库   305

5.5 Query Execution / 执行查询  309

5.5.1 Prepared Statements / 预备语句  309

5.5.2 Reading and Writing LOBs / 读写LOB   316

5.5.3 SQL Escapes / SQL转义  318

5.5.4 Multiple Results / 多结果集  319

5.5.5 Retrieving Autogenerated Keys / 获取自动生成的主键  320

5.6 Scrollable and Updatable Result Sets / 可滚动和可更新的结果集  321

5.6.1 Scrollable Result Sets / 可滚动的结果集  321

5.6.2 Updatable Result Sets / 可更新的结果集  324

5.7 Row Sets / 行集  328

5.7.1 Constructing Row Sets / 构建行集   329

5.7.2 Cached Row Sets / 缓存的行集  329

5.8 Metadata / 元数据  333

5.9 Transactions / 事务  344

5.9.1 Programming Transactions with JDBC / 使用JDBC编程实现事务   344

5.9.2 Save Points / 保存点  345

5.9.3 Batch Updates / 批量更新  345

5.10 Advanced SQL Types / 高 级SQL类型  347

5.11 Connection Management in Web and Enterprise Applications / Web与企业应用中的连接管理  349

Chapter 6: The Date and Time API / 日期与时间API  351

6.1 The Time Line / 时间线  352

6.2 Local Dates / 本地日期  355

6.3 Date Adjusters / 日期调整  358

6.4 Local Time / 本地时间  360

6.5 Zoned Time / 时区时间  361

6.6 Formatting and Parsing / 格式化与解析  365

6.7 Interoperating with Legacy Code / 与遗留代码互操作   369

Chapter 7: Internationalization / 国际化  371

7.1 Locales / 地域  372

7.2 Number Formats / 数字格式  378

7.3 Currencies / 货币  384

7.4 Date and Time / 日期与时间  385

7.5 Collation and Normalization / 排序规则与标准化  393

7.6 Message Formatting / 消息格式化  400

7.6.1 Formatting Numbers and Dates / 格式化数字和日期   400

7.6.2 Choice Formats / choice格式化选项  402

7.7 Text Input and Output / 文本输入与输出  404

7.7.1 Text Files / 文本文件  405

7.7.2 Line Endings / 文本行结尾符号  405

7.7.3 The Console / 控制台  405

7.7.4 Log Files / 日志文件  406

7.7.5 The UTF-8 Byte Order Mark / UTF-8字节顺序标记  406

7.7.6 Character Encoding of Source Files / 源文件的字符编码  407

7.8 Resource Bundles / 资源包  408

7.8.1 Locating Resource Bundles / 定位资源包  409

7.8.2 Property Files / 属性文件  410

7.8.3 Bundle Classes / 包类  411

7.9 A Complete Example / 完整示例  413

Chapter 8: Scripting, Compiling, and Annotation Processing / 脚本、编译与注解处理  429

8.1 Scripting for the Java Platform / Java平台的脚本  430

8.1.1 Getting a Scripting Engine / 获得脚本引擎  430

8.1.2 Script Evaluation and Bindings / 脚本求值与绑定  431

8.1.3 Redirecting Input and Output / 重定向输入与输出  434

8.1.4 Calling Scripting Functions and Methods / 调用脚本函数和方法  435

8.1.5 Compiling a Script / 编译脚本  437

8.1.6 An Example: Scripting GUI Events / 示例:用脚本处理GUI事件   437

8.2 The Compiler API / 编译器API  443

8.2.1 Compiling the Easy Way / 编译的简单使用方法  443

8.2.2 Using Compilation Tasks / 使用编译任务   443

8.2.3 An Example: Dynamic Java Code Generation / 示例:动态Java代码生成   449

8.3 Using Annotations / 使用注解  455

8.3.1 An Introduction into Annotations / 注解简介  455

8.3.2 An Example: Annotating Event Handlers 示例:注解事件处理程序  457

8.4 Annotation Syntax / 注解语法  462

8.4.1 Annotation Interfaces / 注解接口  462

8.4.2 Annotations / 注解  464

8.4.3 Annotating Declarations / 在声明的地方使用注解  466

8.4.4 Annotating Type Uses / 在类型使用的地方使用注解   467

8.4.5 Annotating  this / 对this做注解  468

8.5 Standard Annotations / 标准注解  470

8.5.1 Annotations for Compilation / 用于编译的注解  471

8.5.2 Annotations for Managing Resources / 用于管理资源的注解   472

8.5.3 Meta-Annotations / 元注解  472

8.6 Source-Level Annotation Processing / 源码级注解处理  475

8.6.1 Annotation Processors / 注解处理器  476

8.6.2 The Language Model API / 语言模型API  476

8.6.3 Using Annotations to Generate Source Code / 使用注解生成源代码   477

8.7 Bytecode Engineering / 字节码引擎  481

8.7.1 Modifying Class Files / 修改类文件  481

8.7.2 Modifying Bytecodes at Load Time / 在加载时修改字节码  486

Chapter 9: Security / 安全  491

9.1 Class Loaders / 类加载器  492

9.1.1 The Class Loading Process / 类加载流程  492

9.1.2 The Class Loader Hierarchy / 类加载器层次结构  494

9.1.3 Using Class Loaders as Namespaces / 将类加载器作为命名空间  496

9.1.4 Writing Your Own Class Loader / 编写自己的类加载器   497

9.1.5 Bytecode Verification / 字节码验证  504

9.2 Security Managers and Permissions / 安全管理器与权限  509

9.2.1 Permission Checking / 权限检查  509

9.2.2 Java Platform Security / Java平台安全  510

9.2.3 Security Policy Files / 安全策略文件  514

9.2.4 Custom Permissions / 定制权限  522

9.2.5 Implementation of a Permission Class / 实现权限类  524

9.3 User Authentication / 用户认证  530

9.3.1 The JAAS Framework / JAAS框架  531

9.3.2 JAAS Login Modules / JAAS登录模块  537

9.4 Digital Signatures / 数字签名  546

9.4.1 Message Digests / 消息摘要  547

9.4.2 Message Signing / 消息签名  550

9.4.3 Verifying a Signature / 验证签名  553

9.4.4 The Authentication Problem / 认证问题  556

9.4.5 Certificate Signing / 证书签名  558

9.4.6 Certificate Requests / 证书请求  560

9.4.7 Code Signing / 代码签名  561

9.5 Encryption / 加密  567

9.5.1 Symmetric Ciphers / 对称密码  567

9.5.2 Key Generation / 生成密钥  569

9.5.3 Cipher Streams / 加密流  574

9.5.4 Public Key Ciphers / 公钥密码  575

Chapter 10: Advanced Swing / 高 级Swing  581

10.1 Lists / 列表  582

10.1.1 The JList Component / JList组件  582

10.1.2 List Models / 列表模式  588

10.1.3 Inserting and Removing Values / 插入和移除值  593

10.1.4 Rendering Values / 值的绘制  595

10.2 Tables / 表  599

10.2.1 A Simple Table / 简单表  600

10.2.2 Table Models / 表模式  604

10.2.3 Working with Rows and Columns / 行列操作  608

10.2.3.1 Column Classes / 列类   609

10.2.3.2 Accessing Table Columns / 访问表列  610

10.2.3.3 Resizing Columns / 调整列  611

10.2.3.4 Resizing Rows / 调整行  612

10.2.3.5 Selecting Rows, Columns, and Cells / 选择行、列和单元格  612

10.2.3.6 Sorting Rows / 对行进行排序  614

10.2.3.7 Filtering Rows / 对行进行过滤   615

10.2.3.8 Hiding and Displaying Columns / 隐藏或显示列  617

10.2.4 Cell Rendering and Editing / 单元格的绘制与编辑  626

10.2.4.1 Rendering Cells / 绘制单元格  626

10.2.4.2 Rendering the Header / 绘制表头  627

10.2.4.3 Editing Cells / 编辑单元格  628

10.2.4.4 Custom Editors / 定制编辑器  629

10.3 Trees / 树  639

10.3.1 Simple Trees / 简单的树  640

10.3.2 Editing Trees and Tree Paths / 编辑树和树路径  650

10.3.3 Node Enumeration / 节点枚举  659

10.3.4 Rendering Nodes / 渲染节点  661

10.3.5 Listening to Tree Events / 监听树事件  664

10.3.6 Custom Tree Models / 定制树模型  671

10.4 Text Components / 文本组件  681

10.4.1 Change Tracking in Text Components / 跟踪文本组件的内容修改  682

10.4.2 Formatted Input Fields / 将输入的信息格式化   685

10.4.2.1 Integer Input / 整型输入  686

10.4.2.2 Behavior on Loss of Focus / 丢失焦点时行为  687

10.4.2.3 Filters / 过滤器  688

10.4.2.4 Verifiers / 验证器  690

10.4.2.5 Other Standard Formatters / 其他标准的格式化器  691

10.4.2.6 Custom Formatters / 定制格式化器  693

10.4.3 The JSpinner Component / JSpinner组件  703

10.4.4 Displaying HTML with the JEditorPane / 使用JEditorPane显示HTML  712

10.5 Progress Indicators / 进度指示器  719

10.5.1 Progress Bars / 进度条  719

10.5.2 Progress Monitors / 进度监视器  722

10.5.3 Monitoring the Progress of Input Streams / 监视输入流的进度   726

10.6 Component Organizers and Decorators / 组件组织器和装饰器   731

10.6.1 Split Panes / 分割面板  732

10.6.2 Tabbed Panes / 选项卡面板  735

10.6.3 Desktop Panes and Internal Frames / 桌面面板与内部框体   741

10.6.3.1 Displaying Internal Frames / 显示内部框体   741

10.6.3.2 Cascading and Tiling / 级联与平铺   744

10.6.3.3 Vetoing Property Settings / 否决属性设置  748

10.6.3.4 Dialogs in Internal Frames / 内部框体中的对话框   750

10.6.3.5 Outline Dragging / 拖曳概述   751

10.6.4 Layers / 层次  760

Chapter 11: Advanced AWT /高 级AWT  765

11.1 The Rendering Pipeline / 绘制图形的流程  766

11.2 Shapes / 形状  769

11.2.1 The Shape Class Hierarchy / Shape类层次结构  769

11.2.2 Using the Shape Classes / 使用各种Shape类  772

11.3 Areas / 区域  786

11.4 Strokes / 画笔  788

11.5 Paint / 着色  797

11.6 Coordinate Transformations / 坐标变换  799

11.7 Clipping / 剪切  805

11.8 Transparency and Composition / 透明与组合   807

11.9 Rendering Hints / 绘图提示  817

11.10 Readers and Writers for Images / 图像的读者类和写者类  823

11.10.1 Obtaining Readers and Writers for Image File Types / 获得图像文件类型的读者类和写者类   824

11.10.2 Reading and Writing Files with Multiple Images / 多图文件的读写  825

11.11 Image Manipulation / 图像处理  834

11.11.1 Constructing Raster Images / 构建光栅图像  835

11.11.2 Filtering Images / 图像过滤  842

11.12 Printing / 打印  851

11.12.1 Graphics Printing / 图形打印  852

11.12.2 Multiple-Page Printing / 打印多页文件   862

11.12.3 Print Preview / 打印预览  864

11.12.4 Print Services / 打印服务  874

11.12.5 Stream Print Services / 流打印服务  878

11.12.6 Printing Attributes / 打印属性  879

11.13 The Clipboard / 剪贴板  887

11.13.1 Classes and Interfaces for Data Transfer / 用于数据传输的类和接口   888

11.13.2 Transferring Text / 传输文本  888

11.13.3 The Transferable Interface and Data Flavors / Transferable接口和数据的类型  892

11.13.4 Building an Image Transferable / 构建可传输的图像  894

11.13.5 Transferring Java Objects via the System Clipboard / 通过系统剪贴板传输Java对象   898

11.13.6 Using a Local Clipboard to Transfer Object References / 使用本地剪贴板传输对象引用   902

11.14 Drag and Drop / 拖放  903

11.14.1 Data Transfer Support in Swing / Swing对数据传输的支持   904

11.14.2 Drag Sources / 拖曳源  909

11.14.3 Drop Targets / 放置目标  912

11.15 Platform Integration / 平台集成  921

11.15.1 Splash Screens / 闪屏  921

11.15.2 Launching Desktop Applications / 启动桌面应用程序   927

11.15.3 The System Tray / 系统托盘  932

Chapter 12: Native Methods / 本地方法  939

12.1 Calling a C Function from a Java Program / 从Java程序中调用C函数   940

12.2 Numeric Parameters and Return Values / 数值参数与返回值  947

12.3 String Parameters / 字符串参数  949

12.4 Accessing Fields / 访问字段  956

12.4.1 Accessing Instance Fields / 访问实例字段   956

12.4.2 Accessing Static Fields / 访问静态字段   960

12.5 Encoding Signatures / 编码签名  961

12.6 Calling Java Methods / 调用Java方法  963

12.6.1 Instance Methods / 实例方法  963

12.6.2 Static Methods / 静态方法  964

12.6.3 Constructors / 构造器  965

12.6.4 Alternative Method Invocations / 其他调用方法的手段  966

12.7 Accessing Array Elements / 访问数组元素  970

12.8 Handling Errors / 处理错误  974

12.9 Using the Invocation API / 使用Invocation API  980

12.10 A Complete Example: Accessing the Windows Registry / 完整示例:访问Windows注册表  985

12.10.1 Overview of the Windows Registry / Windows注册表简介   985

12.10.2 A Java Platform Interface for Accessing the Registry / 访问注册表的Java平台接口  987

12.10.3 Implementation of Registry Access Functions as Native Methods / 以本地方法方式实现注册表访问功能  988

详情

本书是Java领域的经典图书的最新版,针对Java SE 8平台进行了全面更新。书中全面覆盖Java技术的高级主题,包括Java SE 8流库,输入与输出,XML,网络,数据库编程,日期与时间API,国际化,脚本、编译与注解处理,安全,高级Swing,高级AWT,以及本地方法等内容。本书对Java技术的阐述精确到位,并包含大量程序示例,让读者充分理解Java语言以及Java类库的相关高级特性。

图书摘要

相关图书

DirectX 12 3D 游戏开发实战
DirectX 12 3D 游戏开发实战
Python和NLTK自然语言处理
Python和NLTK自然语言处理
scikit-learn机器学习(第2版)
scikit-learn机器学习(第2版)
C++编程自学宝典
C++编程自学宝典
数据科学实战手册(第2版)
数据科学实战手册(第2版)
Scala实用指南
Scala实用指南

相关文章

相关课程