編輯推薦
DanielLiang的經典著作,多年來暢銷不衰,全麵整閤Java8的特性。
內容簡介
《Java語言程序設計(基礎篇 原書第10版)》
本書是Java語言的經典教材,多年來暢銷不衰。本書全麵整閤瞭Java
8的特性,采用“基礎優先,問題驅動”的教學方式,循序漸進地介紹瞭程序設計基礎、解決問題的方法、麵嚮對象程序設計、圖形用戶界麵設計、異常處理、I/O和遞歸等內容。此外,本書還全麵且深入地覆蓋瞭一些高級主題,包括算法和數據結構、多綫程、網絡、國際化、高級GUI等內容。
本書中文版由《Java語言程序設計
基礎篇》和《Java語言程序設計
進階篇》組成。基礎篇對應原書的第1~18章,進階篇對應原書的第19~33章。為滿足對Web設計有濃厚興趣的同學,本版在配套網站上增加瞭第34~42章的內容,以提供更多的相關信息。
本書特點
基礎篇介紹基礎內容,進階篇介紹高級內容,便於教師按需選擇理想的教材。
全麵整閤瞭Java
8的特性,對全書的內容進行瞭修訂和更新,以反映Java程序設計的全新技術發展。
對麵嚮對象程序設計進行瞭深入論述,包含GUI程序設計的基礎和擴展。
提供的大量示例中都包括瞭對問題求解的詳細步驟,很多示例都是隨著Java技術的引入不斷地進行增強,這種循序漸進的講解方式更易於學生學習。
用JavaFX取代瞭Swing,極大地簡化瞭GUI編程,比Swing更易於學習。
更多有趣示例和練習,激發學生興趣。在配套網站上還為教師提供瞭100多道的編程練習題。
《Java語言程序設計(進階篇)(原書第10版)》
本書是Java語言的經典教材,中文版分為基礎篇和進階篇,主要介紹程序設計基礎、麵嚮對象程序設計、GUI程序設計、數據結構和算法、高級Java程序設計等內容。本書可作為高等院校相關專業程序設計課程的基礎教材,也可作為Java語言及編程愛好者的參考資料。
作者簡介
梁勇(Y. Daniel Liang),現為阿姆斯特朗亞特蘭大州立大學計算機科學係教授。之前曾是普度大學計算機科學係副教授,並兩次獲得普度大學傑齣研究奬。他所編寫的Java教程在美國大學Java課程中采用率極高,同時他還兼任Prentice Hall Java係列叢書的編輯。他是“Java Champion”榮譽得主,並在世界各地為在校學生和程序員做JAVA程序設計方法及技術方麵的講座。
目錄
《Java語言程序設計(基礎篇 原書第10版)》
Introduction to Java Programming, Comprehension Version, Tenth Edition
齣版者的話
中文版序
者序
前言
第1章 計算機、程序和Java概述 1
1.1 引言 1
1.2 什麼是計算機 2
1.3 編程語言 6
1.4 操作係統 8
1.5 Java、萬維網以及其他 9
1.6 Java語言規範、API、JDK和IDE 10
1.7 一個簡單的Java程序 11
1.8 創建、編譯和執行Java程序 13
1.9 程序設計風格和文檔 16
1.10 程序設計錯誤 17
1.11 使用NetBeans開發Java程序 20
1.12 使用Eclipse開發Java程序 22
關鍵術語 25
本章小結 25
測試題 26
編程練習題 26
第2章 基本程序設計 28
2.1 引言 28
2.2 編寫簡單的程序 28
2.3 從控製颱讀取輸入 31
2.4 標識符 34
2.5 變量 34
2.6 賦值語句和賦值錶達式 36
2.7 命名常量 37
2.8 命名習慣 37
2.9 數值數據類型和操作 38
2.10 數值型直接量 41
2.11 錶達式求值以及操作符優先級 43
2.12 示例學習:顯示當前時間 44
2.13 增強賦值操作符 46
2.14 自增和自減操作符 47
2.15 數值類型轉換 48
2.16 軟件開發過程 50
2.17 示例學習:整錢兌零 54
2.18 常見錯誤和陷阱 56
關鍵術語 58
本章小結 58
測試題 59
編程練習題 59
第3章 選擇 64
3.1 引言 64
3.2 boolean數據類型 64
3.3 if語句 66
3.4 雙分支if-else語句 68
3.5 嵌套的if語句和多分支if-else語句 69
3.6 常見錯誤和陷阱 71
3.7 産生隨機數 74
3.8 示例學習:計算身體質量指數 76
3.9 示例學習:計算稅率 77
3.10 邏輯操作符 80
3.11 示例學習:判定閏年 83
3.12 示例學習:彩票 84
3.13 switch語句 85
3.14 條件錶達式 88
3.15 操作符的優先級和結閤規則 89
3.16 調試 90
關鍵術語 91
本章小結 91
測試題 92
編程練習題 92
第4章 數學函數、字符和字符串 100
4.1 引言 100
4.2 常用數學函數 101
4.3 字符數據類型和操作 105
4.4 String類型 109
4.5 示例學習 117
4.6 格式化控製颱輸齣 123
關鍵術語 126
本章小結 127
測試題 127
編程練習題 127
第5章 循環 133
5.1 引言 133
5.2 while循環 134
5.3 do-while循環 143
5.4 for循環 144
5.5 采用哪種循環 147
5.6 嵌套循環 149
5.7 最小化數值錯誤 151
5.8 示例學習 152
十六進製數 155
5.9 關鍵字break和continue 156
5.10 示例學習:判斷迴文串 159
5.11 示例學習:顯示素數 160
關鍵術語 162
本章小結 163
測試題 163
編程練習題 163
第6章 方法 171
6.1 引言 171
6.2 定義方法 172
6.3 調用方法 173
6.4 void方法示例 175
6.5 通過傳值進行參數傳遞 178
6.6 模塊化代碼 181
6.7 示例學習:將十六進製數轉換為十進製數 183
6.8 重載方法 185
6.9 變量的作用域 187
6.10 示例學習:生成隨機字符 188
6.11 方法抽象和逐步求精 190
關鍵術語 196
本章小結 197
測試題 197
編程練習題 197
第7章 一維數組 207
7.1 引言 207
7.2 數組的基礎知識 207
7.3 示例學習:分析數字 214
7.4 示例學習:一副牌 215
7.5 數組的復製 217
7.6 將數組傳遞給方法 218
7.7 從方法中返迴數組 221
7.8 示例學習:統計每個字母齣現的次數 221
7.9 可變長參數列錶 224
7.10 數組的查找 225
7.11 數組的排序 228
7.12 Arrays類 230
7.13 命令行參數 232
關鍵術語 234
本章小結 235
測試題 235
編程練習題 235
第8章 多維數組 242
8.1 引言 242
8.2 二維數組的基礎知識 242
8.3 處理二維數組 245
8.4 將二維數組傳遞給方法 247
8.5 示例學習:多選題測驗評分 248
8.6 示例學習:找齣距離最近的點對 249
8.7 示例學習:數獨 251
8.8 多維數組 254
《Java語言程序設計(進階篇)(原書第10版)》
Introduction to Java Programming, Comprehensive Version, Tenth Edition
齣版者的話
中文版序
譯者序
前言
第19章 泛型 1
19.1 引言 1
19.2 動機和優點 1
19.3 定義泛型類和接口 4
19.4 泛型方法 5
19.5 示例學習:對一個對象數組進行排序 7
19.6 原始類型和嚮後兼容 8
19.7 通配泛型 10
19.8 消除泛型和對泛型的限製 12
19.9 示例學習:泛型矩陣類 15
關鍵術語 19
本章小結 19
測試題 20
編程練習題 20
第20章 綫性錶、棧、隊列和優先隊列 21
20.1 引言 21
20.2 閤集 21
20.3 迭代器 25
20.4 綫性錶 26
20.5 Comparator接口 30
20.6 綫性錶和閤集的靜態方法 32
20.7 示例學習:彈球 35
20.8 嚮量類和棧類 38
20.9 隊列和優先隊列 40
20.10 示例學習:錶達式求值 43
關鍵術語 47
本章小結 47
測試題 47
編程練習題 47
第21章 集閤和映射錶 53
21.1 引言 53
21.2 集閤 53
21.3 比較集閤和綫性錶的性能 61
21.4 示例學習:統計關鍵字 63
21.5 映射錶 65
21.6 示例學習:單詞的齣現次數 69
21.7 單元素與不可變的閤集和映射錶 71
關鍵術語 72
本章小結 72
測試題 72
編程練習題 72
第22章 開發高效算法 75
22.1 引言 75
22.2 使用大O符號來衡量算法效率 75
22.3 示例:確定大O 77
22.4 分析算法的時間復雜度 81
22.5 使用動態編程計算斐波那契數 83
22.6 使用歐幾裏得算法求最大公約數 85
22.7 尋找素數的高效算法 89
22.8 使用分而治之法尋找最近的點對 94
22.9 使用迴溯法解決八皇後問題 97
22.10 計算幾何:尋找凸包 99
關鍵術語 102
本章小結 102
測試題 103
編程練習題 103
第23章 排序 109
23.1 引言 109
23.2 插入排序 110
23.3 冒泡排序 112
23.4 歸並排序 114
23.5 快速排序 117
23.6 堆排序 121
23.7 桶排序和基數排序 128
23.8 外部排序 129
關鍵術語 136
本章小結 136
測試題 137
編程練習題 137
第24章 實現綫性錶、棧、隊列和優先隊列 141
24.1 引言 141
24.2 綫性錶的通用特性 141
24.3 數組綫性錶 144
24.4 鏈錶 151
24.5 棧和隊列 163
24.6 優先隊列 167
本章小結 168
測試題 169
編程練習題 169
第25章 二叉查找樹 171
25.1 引言 171
25.2 二叉查找樹 171
25.3 刪除BST中的一個元素 184
25.4 樹的可視化和MVC 189
25.5 迭代器 192
25.6 示例學習:數據壓縮 194
關鍵術語 199
本章小結 199
測試題 199
編程練習題 199
第26章 AVL樹 203
26.1 引言 203
26.2 重新平衡樹 204
26.3 為AVL樹設計類 205
26.4 重寫insert方法 207
26.5 實現鏇轉 207
26.6 實現delete方法 208
26.7 AVLTree類 209
26.8 測試 AVLTree類 214
26.9 AVL樹的時間復雜度分析 216
關鍵術語 217
本章小結 217
測試題 217
編程練習題 217
第27章 散列 219
27.1 引言 219
27.2 什麼是散列 219
27.3 散列函數和散列碼 220
27.3.1 基本數據類型的散列碼 220
27.3.2 字符串類型的散列碼 221
27.3.3 壓縮散列碼 221
27.4 使用開放地址法處理衝突 222
27.4.1 綫性探測 222
27.4.2 二次探測法 223
27.4.3 再哈希法 224
27.5 使用鏈地址法處理衝突 225
27.6 裝填因子和再散列 226
27.7 使用散列實現映射錶 227
27.8 使用散列實現集閤 235
關鍵術語 241
本章小結 242
測試題 242
編程練習題 242
第28章 圖及其應用 244
28.1 引言 244
28.2 基本的圖術語 245
28.3 錶示圖 247
28.4 圖建模 251
28.5 圖的可視化 261
28.6 圖的遍曆 263
28.7 深度優先搜索(DFS) 264
28.8 示例學習:連通圓問題 268
28.9 廣度優先搜索(BFS) 270
28.10 示例學習:9枚硬幣反麵問題 273
關鍵術語 278
本章小結 278
測試題 278
編程練習題 278
第29章 加權圖及其應用 283
29.1 引言 283
29.2 加權圖的錶示 284
29.3 WeightedGraph類 286
29.4 最小生成樹 292
29.5 尋找最短路徑 298
29.6 示例學習:加權的9枚硬幣反麵問題 305
關鍵術語 308
本章小結 308
測試題 309
編程練習題 309
第30章 多綫程和並行程序設計 314
30.1 引言 314
30.2 綫程的概念 314
30.3 創建任務和綫程 315
30.4 Thread類 318
30.5 示例學習:閃爍的文本 320
30.6 綫程池 322
30.7 綫程同步 324
30.8 利用加鎖同步 327
30.9 綫程間協作 329
30.10 示例學習:生産者/消費者 333
30.11 阻塞隊列 336
30.12 信號量 338
30.13 避免死鎖 339
30.14 綫程狀態 340
30.15 同步閤集 341
30.16 並行編程 342
關鍵術語 346
本章小結 346
測試題 347
編程練習題 347
第31章 網絡 350
31.1 引言 350
31.2 客戶端/服務器計算 351
31.3 InetAddress類 357
31.4 服務多個客戶 358
31.5 發送和接收對象 361
31.6 示例學習:分布式井字遊戲 365
關鍵術語 376
本章小結 376
測試題 376
編程練習題 376
第32章 Java數據庫程序設計 379
32.1 引言 379
32.2 關係型數據庫係統 379
32.3 SQL 383
32.4 JDBC 391
32.5 PreparedStatement 398
32.6 CallableStatement 400
32.7 獲取元數據 403
關鍵術語 406
本章小結 406
測試題 407
編程練習題 407
第33章 JavaServer Faces 411
精彩書摘
程序在第6行創建一個魔法數,然後提示用戶在一個循環中連續輸入猜測值(第12~23行)。對每一次猜測,程序檢查該猜測數是否正確,是偏高還是偏低瞭(第17—22行)。當某次猜測正確時,程序就退齣這個循環(第12行)。注意:guess被初始化為—1將它初始化為0到100之間的值會齣錯,因為它很嗬能就是要猜的數。
5.2.2循環設計策略
編寫一個正確的循環對編程新手來說,並不是件容易的事。編寫循環時應該考慮如下二個步驟:
第一步:確定需要重復的語句。
第二步:將這些語句放在一個循環中,如下所示:
5.23示例學習:多個減法測試題
程序清單3—3中的數學減法學習工具程序,每次運行隻能産生一道題目。可以使用一個循環重復産生題目。那麼如何編寫能産生5道題目的代碼呢?遵循循環設計策略。首先,確定需要重復的語句。這些語句包括:獲取兩個隨機數,提示用戶對兩數做減法然後給試題打分。然後,將這些語句放在一個循環裏。最後,增加一個循環控製變量和循環繼續條件,然後執行循環五次。
程序清單5—4給齣的程序可以産生5道問題,在學生迴答完所有5個問題後,報告迴答正確的題數。這個程序還顯示該測試所花的時間,並列齣所有的題目。
……
前言/序言
《Java語言程序設計(基礎篇 原書第10版)》
Introduction to Java Programming, Comprehension Version, Tenth Edition許多讀者就本書之前的版本給齣瞭很多反饋。這些評論和建議極大地改進瞭本書。這一版從錶述、組織、示例、練習題以及附錄方麵都進行瞭極大的增強,包括:
用JavaFX取代瞭Swing。JavaFX是一個用於開發Java GUI程序的新框架,它極大地簡化瞭GUI程序設計,比Swing更易於學習。
在GUI程序設計之前介紹異常處理、抽象類和接口,若教師選擇不教授GUI的內容,可以直接跳過第14~16章。
在第4章便開始介紹對象和字符題串,從而使得學生可以較早地使用對象和字符串來開發有趣的程序。
包含更多新的有趣示例和練習題 ,用於激發學生興趣。在配套網站(www.cs. armstrong.edu/liang/intro10e/或www.pearsonhighered.com/liang)上還為教師提供瞭100多道編程練習題。
本書采用基礎優先的方法,在設計自定義類之前,首先介紹基本的程序設計概念和技術。選擇語句、循環、方法和數組這樣的基本概念和技術是程序設計的基礎,它們為學生進一步學習麵嚮對象程序設計和高級Java程序設計做好準備。
本書以問題驅動的方式來教授程序設計,將重點放在問題的解決而不是語法上。我們通過使用在各種應用情景中引發思考的問題,使得程序設計的介紹也變得更加有趣。前麵章節的主綫放在問題的解決上,引入閤適的語法和庫以支持編寫解決問題的程序。為瞭支持以問題驅動的方式來教授程序設計,本書提供瞭大量不同難度的問題來激發學生的積極性。為瞭吸引各個專業的學生來學習,這些問題涉及很多應用領域,包括數學、科學、商業、金融、遊戲、動畫以及多媒體等。
本書將程序設計、數據結構和算法無縫集成在一起,采用一種實用性的方式來教授數據結構。首先
Java語言程序設計(原書第10版)(套裝共2冊) 下載 mobi epub pdf txt 電子書 格式