內容簡介
《Java經典實例(第2版)》收集了Java開發人員經常遇到的成百個問題的解決方案,涵蓋了Java套用的方方面面,堪稱講述Java套用的百科全書。書中的實例從正確設定CLASSPATH和讀取環境信息這樣的簡單任務,到套用XML,或者使用JDK 1.5所帶的並發性工具實現多執行緒編程的完整程式,幾乎無所不包。
無論你是否直接使用書中的實例,作為靈感的源泉,作為學習Java的工具,或者用於其他用途,《Java經典實例(第2版)》都將成為你圖書收藏中的珍品。還沒有一《Java經典實例(第2版)》能夠如此全面地講述Java的諸多功能,並能夠如此容易地運用到實踐當中去。作為第二版,《Java經典實例(第2版)》更像是一部秘笈,指引你獲取最新的第三方資源,以及提供實用的“招式”。《Java經典實例(第2版)》展現了JDK 1.5中許多新的程式語言與API特性,這些都包括在那些實例中。
作者簡介
Ian F.Darwin,有三十年的計算機軟體開發經驗,是Learning Tree國際教育公司的講師和課程設計師。
·
目錄
前言
第1章 起步走:編譯、運行和調試Java程式
1.0 簡介
1.1 編譯和運行Java程式:JDK方式
1.2 採用帶彩色突出顯示的編輯器編輯和編譯程式
1.3 採用IDE編譯、執行和測試程式
1.4 有效使用CLASSPATH
1.5 使用本書的com.darwinsys API類
1.6 編譯本書的原始碼示例
1.7 使用Ant工具自動編譯和執行Java程式
1.8 Applet
1.9 處理過期警告
1.10 沒有#ifdef的條件編譯
1.11 調試信息的輸出
1.12 使用斷言機制維護程式
1.13 使用調試器JDB
1.14 單元測試
1.15 獲取可讀的回溯
1.16 更多的Java源程式
1.17 例程:Debug
第2章 Java的運行環境
2.0 簡介
2.1 獲得環境變數
2.2 系統屬性
2.3 編寫JDK版本相關的代碼
2.4 編寫作業系統相關的代碼
2.5 使用擴展包或其他API包
2.6 解析命令行參數
第3章 字元串
3.0 簡介
3.1 利用substring()分解字元串
3.2 利用StringTokenizer分解字元串
3.3 連線字元串
3.4 處理單個字元
3.5 字元串的對齊
3.6 Unicode字元與String.的轉換
3.7 顛倒字元串
3.8 擴展和壓縮TAB符
3.9 控制字母大小寫
3.10 縮排文檔
3.11 輸入非列印字元
3.12 刪除字元串尾部的空格
3.13 解析逗號分隔的數據
3.14 例程:一個簡單的文本格式化工具
3.15 例程:Soundex算法
第4章 正則表達式的模式匹配
4.0 簡介
4.1 正則表達式的語法
4.2 在Java中使用正則表達式:測試模式
4.3 查找匹配的文本
4.4 替換匹配的正文
4.5 列印匹配的所有字元串
4.6 列印含有模式的行
4.7 在正則表達式中控制大小寫
4.8 匹配重音符或複合字元
4.9 匹配時的換行問題
4.10 例程:Apache日誌檔案解析
4.11 例程:數據挖掘
4.12 例程:完整的Grep
第5章 數字
5.0 簡介
5.1 檢查字元串是否包含有效數字
5.2 數據類型的由大變小
5.3 數字與對象的互相轉換
5.4 使用分數
5.5 確保浮點數的準確性
5.6 浮點數的比較
5.7 浮點數的捨入
5.8 數字的格式化
5.9 二進制、八進制、十進制以及十六進制之間的轉換
5.10 整數序列
5.11 羅馬數字
5.12 名詞的複數形式
5.13 產生隨機數
5.14 產生更好的隨機數
5.15 三角函式的計算
5.16 取對數
5.17 矩陣乘法
5.18 複數
5.19 處理特大的數字
5.20 例程:TempConVerter
5.21 例程:數字回文(Number Palindromes)
第6章 日期和時間
6.0 簡介
6.1 查看當前日期
6.2 按照指定格式列印日期/時間
6.3 用其他曆法表示日期
6.4 將YMDHMS轉換為Calendar對象
6.5 將字元串轉換為日期
6.6 將秒數轉換為DMYHMS格式
6.7 日期的加減運算
6.8 計算日期之間的間隔
6.9 比較日期
6.10 第幾日
6.11 日曆頁
6.12 測量流逝的時間
6.13 休眠
6.14 例程:提醒服務
第7章 結構化數據
7.0 簡介
7.1 數組
7.2 調整數組的長度
7.3 ArrayList類
7.4 Iterator(疊代器)
7.5 鍊表
7.6 使用:Hashtable和HashMap進行映射
7.7 Properties類和Preferences類
7.8 排序
7.9 避免頻繁地排序
7.10 排除重複元素
7.11 搜尋對象
7.12 將集合轉換為數組
7.13 自定義Iterator
7.14 堆疊
7.15 多維結構
7.16 集合小結
7.17 例程:運行效率
第8章 泛型、foreach循環和枚舉的數據結構(JDK 1.5)
8.0 簡介
8.1 使用泛型
8.2 使用“foreach”循環
8.3 使用泛型避免強制類型轉換
8.4 使用自動裝包和自動拆包進行轉換
8.5 使用類型安全的枚舉
8.6 例程:MediaInvoicer
第9章 面向對象的技術
9.0 簡介
9.1 列印對象用toString()方法格式化
9.2 覆蓋equals方法
9.3 覆蓋hashcode方法
9.4 Clone方法
9.5 Finalize方法
9.6 使用內部類
9.7 通過接口進行回調(Callback)
9.8 多態(Polymorphism)/抽象方法
9.9 傳值
9.10 Singleton模式
9.11 自定義異常
9.12 例程:Plotter(繪圖儀)
第10章 輸入和輸出
10.0 簡介
10.1 從標準輸入設備讀取數據
10.2 向標準輸出設備寫數據
10.3 JDK 1.5的Formatter類
10.4 掃描檔案
10.5 JDK 1.5的Scanner類
10.6 按檔案名稱打開檔案
10.7 複製檔案
10.8 把檔案讀入字元串
10.9 重定向標準流
10.10 複製流
10.11 讀/寫不同字元集的文本
10.12 行結束符
10.13 平台相關的檔案編碼
10.14 斷行再續
10.15 讀寫二進制數據
10.16 定位(Seeking)
10.17 處理C程式寫的數據流
10.18 存儲和還原串列化對象
10.19 防止ClassCastExceptions異常
10.20 讀寫JAR或Zip文檔
10.21 讀寫壓縮檔案
10.22 例程:將文本輸出為PostScript格式
第11章 目錄和檔案操作
11.0 簡介
11.1 獲取檔案信息
11.2 創建檔案
11.3 修改檔案名稱
11.4 刪除檔案
11.5 創建臨時檔案
11.6 更改檔案屬性
11.7 列出目錄內容
11.8 獲取根目錄
11.9 創建新目錄
11.10 例程:Find
第12章 串列和並行接口編程
12.0 簡介
12.1 選擇一個連線埠
12.2 打開串列連線埠
12.3 打開並行連線埠
12.4 解決連線埠衝突
12.5 基於連線埠讀寫數據:異步(Lock Step)
12.6 基於連線埠的讀寫數據:事件驅動
12.7 基於連線埠的讀寫數據:執行緒
12.8 例程:Penman繪圖儀
第13章 圖形與聲音
13.0 簡介
13.1 繪製圖形
13.2 測試圖形組件
13.3 輸出文本
13.4 使組件上的文本居中
13.5 陰影效果
13.6 繪製二維藝術字
13.7 文本字型
13.8 圖像
13.9 播放聲音檔案
13.10 播放視頻檔案
13.11 Java的列印
13.12 例程:P10tterlAWT
13.13 例程:Grapher
第14章 圖形用戶界面(GUI)
14.0 簡介
14.1 GUI組件
14.2 窗體布局
14.3 帶Tab的布局
14.4 事件處理:讓按鈕工作起來
14.5 使用匿名的內部類進行事件處理
14.6 通過“關閉窗體”結束程式
14.7 對話框
14.8 GuI異常
14.9 在窗體上列印數據
14.10 使用JSpinner’選擇值
14.11 使用JFileChooser選擇檔案
14.12 選擇顏色
14.13 使用HTML格式化JComponents
14.14 將主窗體居中
14.15 修改swing程式的外觀感受(Look and Feel).
14.16 改進Mac OS x的GUI
14.17 例程:定製字型
14.18 例程:定製布局管理器
第15章 國際化與本地化
15.0 簡介
15.1 用118N資源創建按鈕
15.2 列出有效區域
15.3 使用118N資源創建選單
15.4 編寫國際化的實用子程式
15.5 使用118N資源包創建對話框
15.6 創建資源包
15.7 從代碼中提取字元串
15.8 使用指定的區域
15.9 設定默認的區域
15.10 格式化訊息
15.11 例程:MenuIntl
15.12 例程:BusCard
第16章 網路客戶端
16.0 簡介
16.1 訪問伺服器
16.2 查找並報告網路地址
16.3 處理網路錯誤
16.4 讀寫文本數據
16.5 讀寫二進制數據
16.6 讀寫串列化數據
……
第17章 Java伺服器端:Socket
第18章 網路客戶端(Ⅱ):Applet和Web客戶端
第19章 JaVa與EmajI
第20章 資料庫訪問
第21章 XML
第22章 分散式Java:RMI
第23章 包和包裝機制
第24章 JaVa執行緒
第25章 內省或“命名類的類”
第26章 JaVa與其他語言的結合
後記
·收起全部<<
前言
JDK 1.5(代號為“猛虎”)是Java陣營的一個重大創舉。它引入多個主要的新特徵,例如:簡化數據結構的泛型,以靈活而又定義明確的方式注釋Java類的元數據,用於讀取數據的基於模式的新機制,以及用於格式化列印的新機制等。此外,新版本中還包括了許多細微卻很重要的改動,這些改動對Java開發者而言是必須的。雖然你很想馬上弄懂這些機制,但是要完全理解和融會貫通這些機制還是需要花費一些時間的。
我在第一版的編後記中寫道:“寫這本書是一段不堪回首的經歷。”當許多評論家和作家在大肆炫耀自己的榮譽時,我卻在為自己在第一版中的錯誤和疏漏而感到尷尬不堪。因此,在這一版本中,我盡力做了修正。
與此同時,我增加了一些新實例,並摒棄了小部分舊實例。最大的新增部分就是第8章,主要討論泛型和枚舉,以及能為諸如Java Collection這樣的容器提供更多靈活性的特徵。當前,JaVa已經包含了正則表達式的API,因此,第4章就由Apache的正則表達式API過渡到JDK 1.4正則表達式。