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
· · · · · · (
收起)