閱讀897 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《Java核心技術 卷Ⅱ 高級特性(原書第10版)》一導讀

image

前  言

致讀者
本書是按照Java SE 8完全更新後的《Java核心技術 卷Ⅱ 高級特性(原書第10版)》。卷Ⅰ主要介紹了Java語言的一些關鍵特性;而本卷主要介紹編程人員進行專業軟件開發時需要了解的高級主題。因此,與本書卷Ⅰ和之前的版本一樣,我們仍將本書定位於用Java技術進行實際項目開發的編程人員。
編寫任何一本書籍都難免會有一些錯誤或不準確的地方。我們非常樂意聽到讀者的意見。當然,我們更希望對本書問題的報告隻聽到一次。為此,我們創建了一個FAQ、bug修正以及應急方案的網站https:// horstmann.com/corejava。你可以在bug報告網頁(該網頁的目的是鼓勵讀者閱讀以前的報告)的末尾處添加bug報告,以此來發布bug和問題並給出建議,以便我們改進本書將來版本的質量。
內容提要
本書中的章節大部分是相互獨立的。你可以研究自己最感興趣的主題,並可以按照任意順序閱讀這些章節。
在第1章中,你將學習Java 8的流庫,它帶來了現代風格的數據處理機製,即隻需指定想要的結果,而無須詳細描述應該如何獲得該結果。這使得流庫可以專注於優化的計算策略,對於優化並發計算來說,這顯得特別有利。
第2章的主題是輸入輸出處理。在Java中,所有I/O都是通過輸入/輸出流來處理的。這些流(不要與第1章的那些流混淆了)使你可以按照統一的方式來處理與各種數據源之間的通信,例如文件、網絡連接或內存塊。我們對各種讀入器和寫出器類進行了詳細的討論,它們使得對Unicode的處理變得很容易。我們還展示了如何使用對象序列化機製從而使保存和加載對象變得容易而方便,及其背後的原理。然後,我們討論了正則表達式和操作文件與路徑。
第3章介紹XML,介紹怎樣解析XML文件,怎樣生成XML以及怎樣使用XSL轉換。在一個實用示例中,我們將展示怎樣在XML中指定Swing窗體的布局。我們還討論了XPath API,它使得“在XML的幹草堆中尋找繡花針”變得更加容易。
第4章介紹網絡API。Java使複雜的網絡編程工作變得很容易實現。我們將介紹怎樣創建連接到服務器上,怎樣實現你自己的服務器,以及怎樣創建HTTP連接。
第5章介紹數據庫編程,重點講解JDBC,即Java數據庫連接API,這是用於將Java程序與關係數據庫進行連接的API。我們將介紹怎樣通過使用JDBC API的核心子集,編寫能夠處理實際的數據庫日常操作事務的實用程序。(如果要完整介紹JDBC API的功能,可能需要編寫一本像本書一樣厚的書才行。)最後我們簡要介紹了層次數據庫,探討了一下JNDI(Java命名及目錄接口)以及LDAP(輕量級目錄訪問協議)。
Java對於處理日期和時間的類庫做出過兩次設計,而在Java 8中做出的第三次設計則極富魅力。在第6章,你將學習如何使用新的日期和時間庫來處理日曆和時區的複雜性。
第7章討論了一個我們認為其重要性將會不斷提升的特性—國際化。Java編程語言是少數幾種一開始就被設計為可以處理Unicode的語言之一,不過Java平台的國際化支持則走得更加深遠。因此,你可以對Java應用程序進行國際化,使得它們不僅可以跨平台,而且還可以跨越國界。例如,我們會展示怎樣編寫一個使用英語、德語和漢語的退休金計算器。
第8章討論了三種處理代碼的技術。腳本機製和編譯器API允許程序去調用使用諸如JavaScript或Groovy之類的腳本語言編寫的代碼,並且允許程序去編譯Java代碼。可以使用注解向Java程序中添加任意信息(有時稱為元數據)。我們將展示注解處理器怎樣在源碼級別或者在類文件級別上收集這些注解,以及怎樣運用這些注解來影響運行時的類行為。注解隻有在工具的支持下才有用,因此,我們希望我們的討論能夠幫助你根據需要選擇有用的注解處理工具。
第9章繼續介紹Java安全模型。Java平台一開始就是基於安全而設計的,該章會帶你深入內部,查看這種設計是怎樣實現的。我們將展示怎樣編寫用於特殊應用的類加載器以及安全管理器。然後介紹允許使用消息、代碼簽名、授權以及認證和加密等重要特性的安全API。最後,我們用一個使用AES和RSA加密算法的示例進行了總結。
第10章涵蓋了沒有納入卷Ⅰ的所有Swing知識,尤其是重要但很複雜的樹形構件和表格構件。隨後我們介紹了編輯麵板的基本用法、“多文檔”界麵的Java實現、在多線程程序中用到的進度指示器,以及諸如閃屏和支持係統托盤這樣的“桌麵集成特性”。我們仍著重介紹在實際編程中可能遇到的最為有用的構件,因為對Swing類庫進行百科全書般的介紹可能會占據好幾卷書的篇幅,並且隻有專門的分類學家才感興趣。
第11章介紹Java 2D API,你可以用它來創建實際的圖形和特殊的效果。該章還介紹了抽象窗口操作工具包(AWT)的一些高級特性,這部分內容看起來過於專業,不適合在卷I中介紹。雖然如此,這些技術還是應該成為每一個編程人員工具包的一部分。這些特性包括打印和用於剪切粘貼及拖放的API。
第12章介紹本地方法,這個功能可以讓你調用為微軟Windows API這樣的特殊機製而編寫的各種方法。很顯然,這種特性具有爭議性:使用本地方法,那麼Java平台的跨平台特性將會隨之消失。雖然如此,每個為特定平台編寫Java應用程序的專業開發人員都需要了解這些技術。有時,當你與不支持Java平台的設備或服務進行交互時,為了你的目標平台,你可能需要求助於操作係統API。我們將通過展示如何從某個Java程序訪問Windows注冊表API來闡明這一點。

目 錄

第1章 Java SE 8的流庫
1.1 從迭代到流的操作
1.2 流的創建
1.3 filter、map和flatMap方法
1.4 抽取子流和連接流
1.5 其他的流轉換
1.6 簡單約簡
1.7 Optional類型
1.7.1 如何使用Optional值
1.7.2 不適合使用Optional值的方式
1.7.3 創建Optional值
1.7.4 用flatMap來構建Optional值的函數
1.8 收集結果
1.9 收集到映射表中
1.10 群組和分區
1.11 下遊收集器
1.12 約簡操作
1.13 基本類型流
1.14 並行流
第2章 輸入與輸出
2.1 輸入/輸出流
2.1.1 讀寫字節
2.1.2 完整的流家族
2.1.3 組合輸入/輸出流過濾器
2.2 文本輸入與輸出
2.2.1 如何寫出文本輸出
2.2.2 如何讀入文本輸入
2.2.3 以文本格式存儲對象
2.2.4 字符編碼方式
2.3 讀寫二進製數據
2.3.1 DataInput和DataOutput接口
2.3.2 隨機訪問文件
2.3.3 ZIP文檔
2.4 對象輸入/輸出流與序列化
2.4.1 保存和加載序列化對象
2.4.2 理解對象序列化的文件格式
2.4.3 修改默認的序列化機製
2.4.4 序列化單例和類型安全的枚舉
2.4.5 版本管理
2.4.6 為克隆使用序列化
2.5 操作文件
2.5.1 Path
2.5.2 讀寫文件
2.5.3 創建文件和目錄
2.5.4 複製、移動和刪除文件
2.5.5 獲取文件信息
2.5.6 訪問目錄中的項
2.5.7 使用目錄流
2.5.8 ZIP文件係統
2.6 內存映射文件
2.6.1 內存映射文件的性能
2.6.2 緩衝區數據結構
2.6.3 文件加鎖機製
2.7 正則表達式
第3章 XML
3.1 XML概述
3.1.1 XML文檔的結構
3.2 解析XML文檔
3.3 驗證XML文檔
3.3.1 文檔類型定義
3.3.2 XML Schema
3.3.3 實用示例
3.4 使用XPath來定位信息
3.5 使用命名空間
3.6 流機製解析器
3.6.1 使用SAX解析器
3.6.2 使用StAX解析器
3.7 生成XML文檔
3.7.1 不帶命名空間的文檔
3.7.2 帶命名空間的文檔
3.7.3 寫出文檔
3.7.4 示例:生成SVG文件
3.7.5 使用StAX寫出XML文檔
3.8 XSL轉換

最後更新:2017-09-21 12:02:53

  上一篇:go  Spring Boot 2.x 小新功能 – Spring Data Web configuration
  下一篇:go  網站每天都有收錄,排名卻全部掉了