《Java 經典實例》是2016年8月1日中國電力出版社出版的圖書,作者是[美] Ian F.Darwin( 達爾文) 。
基本介紹
- 中文名:Java 經典實例
- 作者:[美] Ian F.Darwin( 達爾文)
- 出版社:中國電力出版社
- ISBN:9787512387751
內容簡介,圖書目錄,
內容簡介
《Java經典實例(第三版)》 從lambda表達式、JavaFX 8,到網路編程和支持移動設備等方面,Java 8都有許多更新。包含了數百個經過實踐驗證的技巧,內容涵蓋了廣泛的Java主題,可幫助你快速進入編程狀態。你可以從中學到一切有用的技術,包括調試、數據結構、GUI開發和函式編程。
的每個技巧既給出了代碼部分,也給出了運行結果,還有對它們的討論。你可以免費使用這些代碼。如果你對Java基礎知識比較熟悉,學習將使你進一步掌握語言方面的通用知識和Java 8 中主要API方面的特殊知識。
的主題包括:
1.用於編譯、運行和調試的方法。
對文本的處理、比較和重新安排。
2.用於字元串匹配和模式匹配的正則表達式。
?處理數字、日期和時間。
3.使用集合、數組和其他類型實現數據的結構化。
4.面向對象技術和函式編程技術。
5.目錄和檔案系統運算符。
6.使用圖形、視頻和音頻。
7.GUI開發,包括JavaFX和處理器。
8.客戶端和伺服器端的網路編程。
9.資料庫訪問,使用JPA、Hibernate和JDBC。
10.處理JSON和用於數據存儲的XML。
11.多執行緒和並發機制。
圖書目錄
前言. 1
第1章 入門: 編譯、 運行和調試Java程式. 19
1.0 引言 .19
1.1 編譯和運行Java程式: JDK方式20
1.2 用帶語法高亮顯示的編輯器編輯和編譯程式21
1.3 使用IDE編譯、 運行和測試程式22
1.4 有效使用CLASSPATH.30
1.5 下載和使用代碼示例 .32
1.6 使用 Ant工具自動編譯 37
1.7 使用Apache Maven自動設定依賴關係、 編譯、 測試和部署.40
1.8 使用Gradle自動設定依賴關係、 編譯、 測試和部署 .45
1.9 處理過期警告 46
1.10 沒有#ifdef的條件編譯 .48
1.11 使用斷言機制維護程式的正確性.50
1.12 使用JDB調試 .51
1.13 用單元測試避免調試 .53
1.14 用持續集成維護代碼 .56
1.15 獲取可讀回溯 60
1.16 更多的Java原始碼: 程式、 框架和庫61
第2章 與運行環境互動 65
2.0 引言 .65
2.1 獲得環境變數 65
2.2 從系統屬性獲得信息 .67
2.3 了解當前的JDK版本68
2.4 編寫作業系統相關的代碼69
2.5 使用擴展包或其他API包.72
2.6 解析命令行參數 73
第3章 字元串 80
3.0 引言 .80
3.1 用Substring分解字元串 .82
3.2 將字元串分解成詞.83
3.3 用StringBuilder連線字元串 .87
3.4 處理單個字元串 89
3.5字元串對齊 .91
3.6 Unicode字元和String之間的轉換 93
3.7 按單詞或字元顛倒字元串96
3.8 擴展和壓縮Tab 97
3.9 控制字母大小寫 101
3.10 縮排文本文檔 102
3.11 輸入非列印字元 103
3.12 刪除字元串的尾部空格 .104
3.13 解析用逗號分隔的數據 .106
3.14 程式: 一個簡單的文本格式化工具. 110
3.15 程式: Soundex算法. 112
第4章 正則表達式的模式匹配 116
4.0 引言 . 116
4.1 正則表達式語法 118
4.2 在Java中使用正則表達式:測試模式 124
4.3 找到匹配的文本 128
4.4 替換匹配的文本 130
4.5 列印匹配的所有字元串 .132
4.6 列印包含一個模式的行 .134
4.7 在正則表達式中控制大小寫135
4.8 匹配“ 重音符” 或複合字元136
4.9 在文本中匹配換行符 .138
4.10 程式:Apache日誌檔案解析 .139
4.11 程式: 數據挖掘.141
4.12 程式: 完整的Grep.143
第5章 數字 . 149
5.0 引言 .149
5.1 檢查字元串是否是有效數字151
5.2 用小數據類型儲存大數據類型的數字 .153
5.3 數字與對象的相互轉換 .154
5.4 直接使用分數而不用浮點數155
5.5 保證浮點數的準確.157
5.6 比較浮點數 159
5.7 捨入浮點數 160
5.8 格式化數字 161
5.9 二進制、 八進制、 十進制和十六進制之間的轉換 164
5.10 對整數序列的操作.165
5.11 使用羅馬數字 166
5.12 複數的正確格式化.170
5.13 生成隨機數 172
5.14 計算三角函式 174
5.15 取對數 .175
5.16 矩陣乘法176
5.17 使用複數178
5.18 處理非常大的數字180
5.19 程式: TempConverter182
5.20 程式: 數字回文.184
第6章 日期和時間——新的API 187
6.0 引言 .187
6.1 查看當天日期 190
6.2 日期和時間的格式化 .191
6.3 日期/時間、 YMDHMS和 紀元秒( Epoch Seconds) 之間的轉換 193
6.4 將字元串解析為日期 .194
6.5 兩個日期之間的差.195
6.6 日期或日曆的加減.196
6.7 與傳統日期和日曆類的接口197
第7章 結構化數據 . 199
7.0 引言 .199
7.1 使用數組200
7.2 調整數組長度 201
7.3 集合框架203
7.4 動態數組列表 204
7.5 使用泛型集合 207
7.6 使用泛型避免強制類型轉換208
7.7 疊代器的使用方式. 211
7.8 使用Set避免元素重複存儲 213
7.9 使用疊代器或枚舉.215
7.10 鍊表結構216
7.11 使用Hashtable和HashMap進行映射.219
7.12 Properties類和Preferences類221
7.13 對集合排序 225
7.14 避免頻繁排序 229
7.15 在集合中查找對象.231
7.16 將集合轉換為數組.233
7.17 自定義疊代器 234
7.18 堆疊 .237
7.19 多維結構240
7.20 程式:運行時間比較 242
第8章 面向對象技術 245
8.0 引言 .245
8.1 使用toString格式化對象並輸出 247
8.2 覆蓋equals和hashCode方法249
8.3 使用關閉鉤子清理程式 .254
8.4 使用內部類 256
8.5 通過接口提供回調.257
8.6 多態性/抽象方法 .260
8.7 傳遞數值262
8.8 使用類型安全的枚舉 .265
8.9 Singleton模式 269
8.10 自定義異常 271
8.11 使用依賴注入 272
8.12 程式: 繪圖儀 275
第9章 函式式編程技術: 函式接口、 流、 並行集合 279
9.0 引言 .279
9.1 使用lambda/Closure替代內部類 281
9.2 使用lambda預定義接口 .284
9.3 使用流 .287
9.4 使用並行流與集合提高吞吐量 288
9.5 創建自己的函式式接口 .289
9.6 函式引用292
9.7 Java Mixins: 方法混合 .296
第10章 輸入與輸出 . 298
10.0 引言 .298
10.1 從標準輸入設備讀取數據301
10.2 從控制台或控制終端讀取數據, 隱藏讀取密碼 303
10.3 向標準輸出或標準錯誤流寫數據 305
10.4 使用 Formatter 和 printf輸出 .307
10.5 使用Stream Tokenizer的掃描輸入 .310
10.6 使用Scanner類掃描輸入 315
10.7 使用語法結構掃描輸入 .318
10.8 按檔案名稱打開檔案.319
10.9 複製檔案320
10.10 把檔案讀入一個字元串 .326
10.11 重新分配標準流.327
10.12 複製一個流 328
10.13 讀/寫不同的字元集331
10.14 行結束符332
10.15 平台相關的檔案編碼 .332
10.16 閱讀“ 連續” 行.334
10.17 讀/寫二進制數據338
10.18 在檔案中定位 338
10.19 處理C程式寫的數據流.340
10.20 存儲和還原Java對象342
10.21 防止ClassCastExceptions異常345
10.22 讀寫JRA或Zip文檔 347
10.23 利用get Resource()和getResourceAsStream()獲得檔案 .350
10.24 讀寫壓縮檔案 352
10.25 了解串列和並行連線埠的通信API353
10.26 將用戶數據保存到磁碟 .357
10.27 程式: 將文本輸出為PostScript格式361
第11章 目錄和檔案系統操作 364
11.0 引言 .364
11.1 獲取檔案信息 364
11.2 創建一個檔案 367
11.3 重命名一個檔案.368
11.4 刪除一個檔案 369
11.5 創建臨時檔案 370
11.6 改變檔案屬性 372
11.7 列出目錄內容 373
11.8 獲取根目錄 375
11.9 創建新的目錄 377
11.10 使用路徑而不是檔案 .377
11.11 使用FileWatcher 服務得到檔案變化的通知. 379
11.12 程式: Find.381
第12章 媒體: 圖形、 音頻、 視頻. 384
12.0 引言 .384
12.1 使用Graphics對象畫圖 385
12.2 無需編寫主函式顯示圖形組件 386
12.3 繪製文本387
12.4 在組件中央繪製文本 .388
12.5 繪製陰影389
12.6 繪製2D( 二維) 文本 391
12.7 使用應用程式字型繪製文本 394
12.8 繪製圖像396
12.9 使用 javax.imageio讀寫圖像399
12.10 播放音頻/語音檔案401
12.11 播放視頻檔案.402
12.12 在Java中列印 407
12.13 程式: PlotterAWT .410
12.14 程式: Grapher .412
第13章 網路客戶端 . 416
13.0 引言 .416
13.1 訪問伺服器 418
13.2 查找和報告網路地址 .419
13.3 處理網路錯誤 421
13.4 讀寫文本數據 422
13.5 讀寫二進制數據.424
13.6 讀寫串列化數據.427
13.7 UDP數據報 428
13.8 程式: TFTP的UDP客戶端 431
13.9 URI、 URL, 還是URN? 435
13.10 輕量級Web服務客戶端 436
13.11 SOAP Web服務客戶端 .438
13.12 程式: Telnet客戶端.442
13.13 程式: 聊天客戶端 .444
13.14 程式: 簡單的HTTP連結檢查器 448
第14章 圖形用戶界面. 450
14.0 引言 .450
14.1 顯示GUI( 圖形用戶界面) 組件 .451
14.2 在事件調度執行緒上運行GUI.453
14.3 設計一個視窗布局.454
14.4 選項卡視圖 457
14.5 事件處理: 使按鈕工作 .458
14.6 使用匿名內部類進行事件處理 460
14.7 使用Lambdas的事件處理.461
14.8 用“ 視窗關閉” 來終止程式 462
14.9 對話框 .467
14.10 捕捉和格式化GUI異常 469
14.11 在視窗上列印.472
14.12 使用JSpinner選擇一個值 .478
14.13 用JFileChoose選擇一個檔案479
14.14 選擇一種顏色 481
14.15 用HTML格式化jcomponents484
14.16 將主視窗居中顯示 .485
14.17 改變Swing程式的外觀和感覺488
14.18 改進MAC OS X下的Swing GUI 492
14.19 使用JavaFX構建GUI應用程式.494
14.20 程式: 定製字型選擇器 .496
14.21 程式: 定製AWT/Swing布局管理器 500
第15章 國際化和本地化 508
15.0 引言 .508
15.1 用I18N資源創建一個按鈕 .509
15.2 列出可用的語言環境 . 511
15.3 使用I18N資源創建選單 .512
15.4 編寫國際化的方便子程式512
15.5 使用I18N資源創建一個對話框514
15.6 創建一個資源包.516
15.7 從代碼中提取字元串 .517
15.8 使用特定的語言環境 .518
15.9 設定默認語言環境.519
15.10 使用MessageFormat格式化訊息 520
15.11 程式: MenuIntl 522
15.12 程式: BusCard .524
第16章 Java伺服器端 . 528
16.0 引言 .528
16.1 打開伺服器套接字.529
16.2 返回一個回響( 字元串或二進制) .531
16.3 通過網路連線返回對象信息 534
16.4 處理多個客戶端.535
16.5 為HTTP協定服務.540
16.6 用SSL和JSSE保護Web伺服器 .542
16.7 網路日誌545
16.8 使用SLF4J進行網路日誌記錄 .546
16.9 使用log4j進行網路日誌記錄 .548
16.10 使用java.util.logging進行網路日誌記錄 551
16.11 查找網路接口.553
16.12 程式: 一個Java聊天伺服器.554
第17章 Java和電子信箱 560
17.0 引言 .560
17.1 傳送電子郵件: 瀏覽器版本 561
17.2 傳送電子郵件: 真實的 .564
17.3 啟用伺服器程式的郵件傳送 567
17.4 傳送MIME郵件 .572
17.5 提供郵件設定 575
17.6 閱讀電子郵件 576
17.7 程式: MailReaderBean580
17.8 程式: MailClient.584
第18章 資料庫訪問 . 594
18.0 引言 594
18.1 用JPA或Hibernate輕鬆訪問資料庫 596
18.2 JDBC設定和連線.601
18.3 連線JDBC資料庫.604
18.4 傳送一個JDBC查詢並獲取結果 607
18.5 使用JDBC準備好的語句610
18.6 在JDBC中使用存儲過程614
18.7 使用ResultSet修改數據614
18.8 在RowSet中存儲615
18.9 使用SQL更新數據 .617
18.10 查找JDBC元數據.619
18.11 程式: SQLRunner .623
第19章 處理JSON數據 . 636
19.0 引言 .636
19.1 直接生成 JSON638
19.2 使用Jackson解析和編寫JSON .639
19.3 用org.json解析和編寫JSON 640
第20章 處理XML 643
20.0 引言 .643
20.1 用JAXB在對象與XML之間轉換 .646
20.2 使用序列化實現對象與XML之間的轉換 648
20.3 通過XSLT轉換XML 649
20.4 用SAX解析XML652
20.5 用DOM解析XML.654
20.6 用XPath查找XML元素 658
20.7 用Schema或DTD驗證結構 659
20.8 用DOM和XML轉換器生成自己的XML .662
20.9 程式xml2mif 664
第21章 包和打包 667
21.0 引言 .667
21.1 創建一個封裝包.668
21.2 用Javadoc為類寫文檔 669
21.3 超出Javadoc: 註解/元數據 .673
21.4 用jar歸檔 .675
21.5 從一個JAR運行一個程式 676
21.6 將一個類作為JavaBean678
21.7 將Bean放入一個JAR中681
21.8 打包一個Servlet到WAR檔案 .683
21.9 編寫一次, 隨處安裝 .684
21.10 編寫一次, 在Mac OS X上進行安裝 .684
21.11 Java Web Start 686
21.12 簽名你的JAR檔案692
第22章 Java執行緒 694
22.0 引言 .694
22.1 在不同執行緒中運行代碼 .696
22.2 用動畫顯示運動圖像 .700
22.3 停止一個執行緒 704
22.4 交會和逾時 707
22.5 用synchronized關鍵字實現執行緒同步 .708
22.6 使用鎖簡化同步.714
22.7 用wait()和notifyAll()同步執行緒 718
22.8 使用佇列接口簡化生產者/消費者模式 723
22.9 用Fork/Join最佳化並行處理725
22.10 在編輯器的後台保存 .729
22.11 程式: 多執行緒網路伺服器730
22.12 使用Concurrency Utilities簡化伺服器 .736
第23章 反射或“ 命名類的類” 739
23.0 引言 .739
23.1 獲取類描述符 740
23.2 查找並使用方法和域 .741
23.3 通過反射訪問私有的方法和域 744
23.4 動態載入並實例化一個類746
23.5 通過一個ClassLoader從頭開始構造一個類 .748
23.6 性能計時749
23.7 輸出類的信息 753
23.8 顯示包中包含的類清單 .755
23.9 使用和定義註解.757
23.10 通過註解找到類似外掛程式的類 762
23.11 程式: CrossRef .764
23.12 程式: AppletViewer 766
第24章 Java和其他語言的結合 773
24.0 引言 .773
24.1 在Java中運行外部程式 774
24.2 運行一個程式並捕捉其輸出 778
24.3 通過javax.script調用其他語言.781
24.4 啟動自己的腳本引擎 .783