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

本书特色

[

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

]

内容简介

[

? Java领域zui具影响力和价值的著作之一
? 曾获Jolt生产效率大奖的Java经典图书zui新版
? Java平台的权V指南,全面体现Java SE 8的新变化
长期以来,对希望为真是应用编写健壮的Java代码的有经验的程序员而言,《Java核心技术》一直被认为是领先且严谨的教程与参考资料。为了反映万众瞩目、带来很多创新的Java SE 8,《Java核心技术 卷II:高级特性(第10版)》做了大量更新。书中的素材经过了重写或重新组织,以说明Java用于企业和桌面开发的强大的新特性、习惯用法和zui佳实践。数百个编程示例也做了更新,全部悉心设计,便于读者理解和实际应用。
本书为希望解决现实问题的严谨的程序员而编写,作者Cay Horstmann希望帮助读者深入理解当今之Java语言和库。本书是两卷本《Java核心技术》的第二卷,这一卷深入介绍了新的流API、日期 时间 日历库、高级Swing、安全、代码处理等高级主题。
对于想学习Java SE 8的有经验的程序员,本书是通往开发者信任20多年的Java平台的可靠、实用且完备的指南。
通过本书读者将学到:
● 使用新的流库更灵活、更高效地处理集合;
● 高效地访问文件和目录,读写二进制或文本数据,以及序列化对象;
● 使用Java SE 8的正则表达式包;
● 在Java中充分利用XML:解析、验证、XPath、文档生成和XSL等;
● 高效地将Java程序连接到网络服务;
● 使用JDBC 4.2进行数据库编程;
● 借助新的java.time API优雅地克服日期/时间编程的复杂性;
● 利用本地化日期/时间、数值、文本和GUI编写国际化程序;
● 使用脚本API、编译器API和注解处理器处理代码;
● 通过类加载器、字节码验证、安全管理器、权限、用户认证、数字签名、代码签名和加密增强安全性;
● 掌握列表、表格、树、文本和进度指示器等高级Swing组件;
● 使用Java 2D API生成高质量图形;
● 使用JNI本地方法利用其他语言编写的代码。

]

作者简介

[

Cay S. Horstmann 是Core Java? for the Impatient(2015)、Java SE 8 for the Really Impatient(2014)和Scala for the Impatient(2012)等图书的作者。他还有很多写给职业程序员和计算机专业学生的专著。他是圣何塞州立大学的计算机科学教授,还是一名Java Champion。

]

目录

目录

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核心技术卷II:高级特性-(上.下册)-(第10版.英文版)

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

作者:凯.S.霍斯特曼

页数:未知

定价:¥129.0

出版社:人民邮电出版社

出版日期:2017-07-01

ISBN:9787115458865

PDF电子书大小:59MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注