Java經典實例 (第三版) Java经典实例(第三版)

Ian^達爾文 (F.Darwin)

  • 出版商: 中國電力
  • 出版日期: 2016-08-01
  • 定價: $888
  • 售價: 8.5$755
  • 語言: 簡體中文
  • 頁數: 836
  • 裝訂: 平裝
  • ISBN: 751238775X
  • ISBN-13: 9787512387751
  • 此書翻譯自: Java Cookbook, 3/e (Paperback)
  • 已過版

買這商品的人也買了...

商品描述

<內容介紹>

《Java經典實例(第三版)》 從lambda表達式、JavaFX 8,到網絡編程和支持移動設備等方面,Java 8都有許多更新。包含了數百個經過實踐驗證的技巧,內容涵蓋了廣泛的Ja​​va主題,可幫助你快速進入編程狀態。你可以從中學到一切有用的技術,包括調試、數據結構、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