本书是经典的《Java核心技术 卷Ⅱ:高级特性》的新版。这一版对全书进行了全面更新,以反映Java SE 9、Java SE 10和Java SE 11的特性。 本书是Java技术权威指南,全面覆盖Java技术的高级主题,包括流,输入与输出,XML,网络API,数据库编程,日期与时间API,国际化,脚本、编译与注解处理,Java平台模块系统,安全,本地方法等内容。本书对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量程序示例,从而帮助读者充分理解Java语言以及Java类库的相关高级特性。 本书适合想将Java应用于实际项目的软件开发人员、高等院校教师和学生参考阅读。
作者简介 凯·S. 霍斯特曼(Cay S. Horstmann) 圣何塞州立大学计算机科学教授,“Java大师”(Java Champion)。他是多卷本的《Java核心技术》《写给大忙人看的Java核心技术(第2 版)》以及《快学Scala(第2 版)》的作者。他还编写了很多针对专业程序员和计算机科学专业学生的其他图书。
目录 Chapter 1:Streams/流 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方法 11 1.4 Extracting Substreams and Combining Streams/提取子流和组合流 12 1.5 Other Stream Transformations/其他流变换 14 1.6 Simple Reductions/简单规约 15 1.7 The Optional Type/Optional类型 16 1.7.1 Getting an Optional Value/获得Optional值 17 1.7.2 Consuming an Optional Value/消耗Optional值 17 1.7.3 Pipelining Optional Values/流水线式的使用Optional值 18 1.7.4 How Not to Work with Optional Values/避免错误使用Optional值 19 1.7.5 Creating Optional Values/创建Optional值 20 1.7.6 Composing Optional Value Functions with flatMap/使用flatMap组合Optional值函数 21 1.7.7 Turning an Optional into a Stream/将Optional值变到流中 22 1.8 Collecting Results/收集结果 25 1.9 Collecting into Maps/收集到Map中 30 1.10 Grouping and Partitioning/分组与分区 34 1.11 Downstream Collectors/下游的收集器 36 1.12 Reduction Operations/规约操作 41 1.13 Primitive Type Streams/基本类型的流 43 1.14 Parallel Streams/并行流 48 Chapter 2:Input and Output/输入与输出 55 2.1 Input/Output Streams/输入/输出流 56 2.1.1 Reading and Writing Bytes/读写字节 56 2.1.2 The Complete Stream Zoo/流谱系概览 59 2.1.3 Combining Input/Output Stream Filters/组合输入/输出流过滤器 63 2.1.4 Text Input and Output/文本输入与输出 68 2.1.5 How to Write Text Output/输出文本 68 2.1.6 How to Read Text Input/输入文本 70 2.1.7 Saving Objects in Text Format/以文本格式保存对象 72 2.1.8 Character Encodings/字符编码 75 2.2 Reading and Writing Binary Data/读写二进制数据 78 2.2.1 The DataInput and DataOutput interfaces/DataInput和DataOutput接口 78 2.2.2 Random-Access Files/随机访问文件 80 2.2.3 ZIP Archives/ZIP文档 85 2.3 Object Input/Output Streams and Serialization/对象输入/输出流与序列化 88 2.3.1 Saving and Loading Serializable Objects/序列化对象的保存与加载 88 2.3.2 Understanding the Object Serialization File Format/理解对象序列化文件格式 93 2.3.3 Modifying the Default Serialization Mechanism/修改默认的序列化机制 100 2.3.4 Serializing Singletons and Typesafe Enumerations/序列化单例和类型安全的枚举 102 2.3.5 Versioning/版本管理 103 2.3.6 Using Serialization for Cloning/将序列化用于克隆 106 2.4 Working with Files/处理文件 109 2.4.1 Paths/路径 109 2.4.2 Reading and Writing Files/读写文件 112 2.4.3 Creating Files and Directories/创建文件和目录 113 2.4.4 Copying, Moving, and Deleting Files/复制、移动和删除文件 114 2.4.5 Getting File Information/获取文件信息 116 2.4.6 Visiting Directory Entries/访问目录条目 118 2.4.7 Using Directory Streams/使用目录流 120 2.4.8 ZIP File Systems/ZIP文件系统 123 2.5 Memory-Mapped Files/内存映射文件 124 2.5.1 Memory-Mapped File Performance/内存映射文件的性能 125 2.5.2 The Buffer Data Structure/缓冲区数据结构 132 2.6 File Locking/文件锁 134 2.7 Regular Expressions/正则表达式 137 2.7.1 The Regular Expression Syntax/正则表达式语法 137 2.7.2 Matching a String/匹配字符串 142 2.7.3 Finding Multiple Matches/寻找多个匹配字符串 145 2.7.4 Splitting along Delimiters/使用分隔符分解 147 2.7.5 Replacing Matches/替换掉匹配字符串 148 Chapter 3:XML 153 3.1 Introducing XML/XML简介 154 3.2 The Structure of an XML Document/XML文档的结构 156 3.3 Parsing an XML Document/解析XML文档 159 3.4 Validating XML Documents/验证XML文档 169 3.4.1 Document Type Definitions/文档类型定义 171 3.4.2 XML Schema/XML模式 179 3.4.3 A Practical Example/实用示例 182 3.5 Locating Information with XPath/使用XPath定位信息 188 3.6 Using Namespaces/使用命名空间 193 3.7 Streaming Parsers/流解析器 196 3.7.1 Using the SAX Parser/使用SAX解析器 197 3.7.2 Using the StAX Parser/使用StAX解析器 202 3.8 Generating XML Documents/生成XML文档 206 3.8.1 Documents without Namespaces/不带命名空间的文档 206 3.8.2 Documents with Namespaces/带命名空间的文档 207 3.8.3 Writing Documents/写文档 208 3.8.4 Writing an XML Document with StAX/使用StAX写XML文档 210 3.8.5 An Example:Generating an SVG File/示例:生成SVG文件 215 3.9 XSL Transformations/XSL转换 216 Chapter 4:Networking/网络 227 4.1 Connecting to a Server/连接到服务器 227 4.1.1 Using Telnet/使用Telnet 227 4.1.2 Connecting to a Server with Java/使用Java连接到服务器 230 4.1.3 Socket Timeouts/套接字超时 232 4.1.4 Internet Addresses/因特网地址 234 4.2 Implementing Servers/实现服务器 236 4.2.1 Server Sockets/服务器套接字 236 4.2.2 Serving Multiple Clients/服务多个客户端 239 4.2.3 Half-Close/半关闭 243 4.2.4 Interruptible Sockets/可中断套接字 244 4.3 Getting Web Data/获取Web数据 251 4.3.1 URLs and URIs/URL和URI 251 4.3.2 Using a URLConnection to Retrieve Information/使用URLConnection获取信息 254 4.3.3 Posting Form Data/提交表单数据 261 4.4 The HTTP Client/HTTP客户端 271 4.5 Sending E-Mail/发送E-Mail 278 Chapter 5:Database Programming/数据库编程 283 5.1 The Design of JDBC/JDBC的设计 284 5.1.1 JDBC Driver Types/JDBC驱动程序分类 285 5.1.2 Typical Uses of JDBC/JDBC的典型用法 286 5.2 The Structured Query Language/结构化查询语言 287 5.3 JDBC Configuration/JDBC配置 293 5.3.1 Database URLs/数据库URL 294 5.3.2 Driver JAR Files/驱动程序JAR文件 294 5.3.3 Starting the Database/启动数据库 294 5.3.4 Registering the Driver Class/注册驱动程序类 295 5.3.5 Connecting to the Database/连接到数据库 296 5.4 Working with JDBC Statements/使用JDBC语句 299 5.4.1 Executing SQL Statements/执行SQL语句 299 5.4.2 Managing Connections, Statements, and Result Sets/管理连接、语句和结果集 303 5.4.3 Analyzing SQL Exceptions/分析SQL异常 304 5.4.4 Populating a Database/填充数据库 306 5.5 Query Execution/执行查询 310 5.5.1 Prepared Statements/预备语句 311 5.5.2 Reading and Writing LOBs/读写LOB 317 5.5.3 SQL Escapes/SQL转义 319 5.5.4 Multiple Results/多结果集 321 5.5.5 Retrieving Autogenerated Keys/获取自动生成的主键 322 5.6 Scrollable and Updatable Result Sets/可滚动和可更新的结果集 322 5.6.1 Scrollable Result Sets/可滚动的结果集 323 5.6.2 Updatable Result Sets/可更新的结果集 325 5.7 Row Sets/行集 329 5.7.1 Constructing Row Sets/构建行集 330 5.7.2 Cached Row Sets/缓存的行集 330 5.8 Metadata/元数据 334 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.9.4 Advanced SQL Types/不错SQL类型 348 5.10 Connection Management in Web and Enterprise Applications/Web与企业应用中的连接管理 349 Chapter 6:The Date and Time API/日期与时间API 353 6.1 The Time Line/时间线 354 6.2 Local Dates/本地日期 358 6.3 Date Adjusters/日期调整 364 6.4 Local Time/本地时间 365 6.5 Zoned Time/时区时间 367 6.6 Formatting and Parsing/格式化与解析 371 6.7 Interoperating with Legacy Code/与遗留代码互操作 376 Chapter 7:Internationalization/国际化 379 7.1 Locales/地域 380 7.1.1 Why Locales/为什么要引入地域类 380 7.1.2 Specifying Locales/指定地域 381 7.1.3 The Default Locale/默认地域 384 7.1.4 Display Names/显示地域名 384 7.2 Number Formats/数字格式 387 7.2.1 Formatting Numeric Values/格式化数字值 387 7.2.2 Currencies/货币 393 7.3 Date and Time/日期与时间 394 7.4 Collation and Normalization/排序规则与标准化 402 7.5 Message Formatting/消息格式化 409 7.5.1 Formatting Numbers and Dates/格式化数字和日期 409 7.5.2 Choice Formats/choice格式化选项 411 7.6 Text Input and Output/文本输入与输出 413 7.6.1 Text Files/文本文件 414 7.6.2 Line Endings/文本行结尾符号 414 7.6.3 The Console/控制台 414 7.6.4 Log Files/日志文件 415 7.6.5 The UTF-8 Byte Order Mark/UTF-8字节顺序标记 415 7.6.6 Character Encoding of Source Files/源文件的字符编码 416 7.7 Resource Bundles/资源包 417 7.7.1 Locating Resource Bundles/定位资源包 417 7.7.2 Property Files/属性文件 418 7.7.3 Bundle Classes/包类 419 7.8 A Complete Example/完整示例 421 Chapter 8:Scripting, Compiling, and Annotation Processing/脚本、编译与注解处理 439 8.1 Scripting for the Java Platform/Java平台的脚本 440 8.1.1 Getting a Scripting Engine/获得脚本引擎 440 8.1.2 Script Evaluation and Bindings/脚本求值与绑定 441 8.1.3 Redirecting Input and Output/重定向输入输出 444 8.1.4 Calling Scripting Functions and Methods/调用脚本函数和方法 444 8.1.5 Compiling a Script/编译脚本 446 8.1.6 An Example:Scripting GUI Events/示例:用脚本处理GUI事件 447 8.2 The Compiler API/编译器API 452 8.2.1 Invoking the Compiler/调用编译器 453 8.2.2 Launching a Compilation Task/启动编译任务 453 8.2.3 Capturing Diagnostics/捕获诊断信息 454 8.2.4 Reading Source Files from Memory/从内存读取源文件 454 8.2.5 Writing Byte Codes to Memory/将字节码写入内存 455 8.2.6 An Example:Dynamic Java Code Generation/示例:动态Java代码生成 457 8.3 Using Annotations/使用注解 463 8.3.1 An Introduction into Annotations/注解简介 464 8.3.2 An Example:Annotating Event Handlers/示例:注解事件处理程序 465 8.4 Annotation Syntax/注解语法 471 8.4.1 Annotation Interfaces/注解接口 471 8.4.2 Annotations/注解 473 8.4.3 Annotating Declarations/在声明的地方使用注解 475 8.4.4 Annotating Type Uses/在类型使用的地方使用注解 476 8.4.5 Annotating this/对this做注解 477 8.5 Standard Annotations/标准注解 478 8.5.1 Annotations for Compilation/用于编译的注解 480 8.5.2 Annotations for Managing Resources/用于管理资源的注解 480 8.5.3 Meta-Annotations/元注解 481 8.6 Source-Level Annotation Processing/源码级注解处理 484 8.6.1 Annotation Processors/注解处理器 484 8.6.2 The Language Model API/语言模型API 485 8.6.3 Using Annotations to Generate Source Code/使用注解生成源代码 486 8.7 Bytecode Engineering/字节码工程 489 8.7.1 Modifying Class Files/修改类文件 490 8.7.2 Modifying Bytecodes at Load Time/在加载时修改字节码 495 Chapter 9:The Java Platform Module System/Java平台模块系统 499 9.1 The Module Concept/模块概念 500 9.2 Naming Modules/命名模块 501 9.3 The Modular“Hello, World!”Program/模块化的“Hello, World!”程序 502 9.4 Re
以下为对购买帮助不大的评价