《Java從入門到精通(第7版)》從初學者角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,詳細講解了使用Java語言進行程序開發(fā)需要掌握的知識。全書分為4篇共24章,內(nèi)容包括初識Java,開發(fā)工具(IDEA、Eclipse),Java語言基礎,流程控制,數(shù)組,類和對象,繼承、多態(tài)、抽象類與接口,包和內(nèi)部類,異常處理,字符串,常用類庫,集合類,枚舉類型與泛型,lambda表達式與流處理,I/O(輸入/輸出),反射與注解,數(shù)據(jù)庫操作,Swing程序設計,Java繪圖,多線程,并發(fā),網(wǎng)絡通信,飛機大戰(zhàn)游戲,MR人臉識別打卡系統(tǒng)。書中所有知識都結(jié)合具體實例進行講解,涉及的程序代碼都給出了詳細的注釋,這可以幫助讀者輕松領會Java程序開發(fā)的精髓,并快速提高開發(fā)技能。
叢書說明:軟件開發(fā)視頻大講堂叢書第1版于2008年8月出版,因其編寫細膩、易學實用、配備海量學習資源和全程視頻等,在軟件開發(fā)類圖書市場上產(chǎn)生了很大反響,絕大部分品種在全國軟件開發(fā)零售圖書排行榜中名列前茅,2009年多個品種被評為全國優(yōu)秀暢銷書。
軟件開發(fā)視頻大講堂叢書第2版于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版,第5版于2019年3月出版,第6版于2021年7月出版。十五年間反復錘煉,打造經(jīng)典。叢書迄今累計重印680多次,銷售400多萬冊,不僅深受廣大程序員的喜愛,還被百余所高校選為計算機、軟件等相關專業(yè)的教學參考用書。
軟件開發(fā)視頻大講堂叢書第7版在繼承前6版所有優(yōu)點的基礎上,進行了大幅度的修訂。第一,根據(jù)當前的技術趨勢與熱點需求調(diào)整品種,拓寬了程序員崗位就業(yè)技能用書;第二,對圖書內(nèi)容進行了深度更新、優(yōu)化,如優(yōu)化了內(nèi)容布置,彌補了講解疏漏,將開發(fā)環(huán)境和工具更新為新版本,增加了對新技術點的剖析,將項目替換為更能體現(xiàn)當今IT開發(fā)現(xiàn)狀的熱門項目等,使其更與時俱進,更適合讀者學習;第三,改進了教學微課視頻,為讀者提供更好的學習體驗;第四,升級了開發(fā)資源庫,提供了程序員入門學習技巧掌握實例訓練項目開發(fā)求職面試等各階段的海量學習資源;第五,為了方便教學,制作了全新的教學課件PPT。
Java是Sun公司推出的跨平臺、可移植性高的一種面向?qū)ο缶幊陶Z言。自面世以來,Java憑借其易學易用、功能強大的特點得到了廣泛的應用。其強大的跨平臺特性使Java程序可以運行在大部分系統(tǒng)平臺上,甚至可以運行在移動電子產(chǎn)品上,真正做到一次編寫,到處運行。Java可用于編寫桌面應用程序、Web應用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應用程序等,這使得它成為應用范圍最廣泛的開發(fā)語言。隨著Java技術的不斷更新,在全球云計算和移動互聯(lián)網(wǎng)飛速發(fā)展的產(chǎn)業(yè)環(huán)境下,Java的顯著優(yōu)勢和廣闊前景將進一步呈現(xiàn)出來。
本書內(nèi)容
本書提供了從Java入門到編程高手所必需的各類知識,共分4篇。
第1篇:基礎知識。本篇通過對初識Java、開發(fā)工具、Java語言基礎、流程控制和數(shù)組等內(nèi)容的講解,結(jié)合大量的圖示、舉例、視頻等,使讀者快速掌握Java語言的基礎知識,為以后編程奠定堅實的基礎。
第2篇:面向?qū)ο缶幊。本篇講解類和對象,繼承、多態(tài)、抽象類與接口,包和內(nèi)部類等內(nèi)容。學習完本篇,讀者將能掌握如何采用面向?qū)ο笏季S編寫Java代碼。
第3篇:核心技術。本篇講解異常處理、字符串、常用類庫、集合類、枚舉類型與泛型、lambda表達式與流處理、I/O(輸入/輸出)、反射與注解、數(shù)據(jù)庫操作、Swing程序設計、Java繪圖、多線程、并發(fā)和網(wǎng)絡通信等內(nèi)容。學習完本篇,讀者將能夠開發(fā)出一些小型應用程序。
第4篇:項目實戰(zhàn)。本篇通過一個小型的游戲項目和一個利用人工智能視覺分析的人臉識別打卡系統(tǒng)項目,運用軟件工程的設計思想,讓讀者學習如何進行軟件項目的實踐開發(fā)。項目按照編寫項目計劃書系統(tǒng)設計數(shù)據(jù)庫設計創(chuàng)建項目實現(xiàn)項目運行項目解決開發(fā)常見問題的過程進行講解,帶領讀者一步一步地體驗項目開發(fā)的全過程。
本書特點
由淺入深,循序漸進。本書以零基礎入門讀者和初、中級程序員為對象,讓讀者先從Java基礎知識學起,再學習面向?qū)ο缶幊,接著學習Java的核心技術,最后學習開發(fā)兩個完整項目。講解過程中步驟詳盡,版式新穎,在操作的內(nèi)容圖片上以編號 內(nèi)容的方式進行標注,使讀者在閱讀時一目了然,可以快速掌握書中內(nèi)容。
微課視頻,講解詳盡。為便于讀者直觀感受程序開發(fā)的全過程,書中重要章節(jié)配備了視頻講解(共249集,時長32小時),讀者可以使用手機掃描章節(jié)標題一側(cè)的二維碼進行觀看和學習。這也便于初學者輕松入門,感受編程的快樂和成就感,進一步增強學習的信心。
基礎示例 強化訓練 綜合練習 項目案例,實戰(zhàn)為王。通過例子學習是最好的學習方式,本書核心知識講解通過一個知識點、一個示例、一個結(jié)果、一段評析、一個綜合應用的模式,詳盡透徹地講述了實際開發(fā)中所需的各類知識。全書共計有219個應用示例,149個編程訓練,96個綜合練習,2個項目案例,為初學者打造學習1小時,訓練10小時的強化實戰(zhàn)學習環(huán)境。
精彩欄目,貼心提醒。本書根據(jù)需要在各章安排了很多注意說明技巧誤區(qū)警示等小欄目,讓讀者可以在學習過程中更輕松地理解相關知識點及概念,更快地掌握相關技術的應用技巧。
讀者對象:初學編程的自學者;編程愛好者;大中專院校的老師和學生;相關培訓機構(gòu)的老師和學員;做畢業(yè)設計的學生;初、中級程序開發(fā)人員;程序測試及維護人員;參加實習的菜鳥程序員
本書學習資源
本書提供了大量的輔助學習資源,讀者需刮開圖書封底的防盜碼,掃描并綁定微信后,獲取學習權限。
同步教學微課
學習書中知識時,掃描章節(jié)名稱處的二維碼,可在線觀看教學視頻。
在線開發(fā)資源庫
本書配備了強大的Java開發(fā)資源庫,包括技術資源庫、技巧資源庫、實例資源庫、項目資源庫、源碼資源庫、視頻資源庫。掃描二維碼,可登錄明日科技網(wǎng)站,獲取Java開發(fā)資源庫一年的免費使用權限。
學習答疑
關注清大文森學堂公眾號,可獲取本書的源代碼、PPT課件、視頻等資源,加入本書的學習交流群,參加圖書直播答疑。
讀者掃描圖書封底的文泉云盤二維碼,或登錄清華大學出版社網(wǎng)站,可在對應圖書頁面下查閱各類學習資源的獲取方式。
感謝您選擇本書,希望本書能成為您編程路上的領航者。
零門檻編程,一切皆有可能。
祝讀書快樂!
明日科技,全稱是吉林省明日科技有限公司,是一家專業(yè)從事軟件開發(fā)、教育培訓以及軟件開發(fā)教育資源整合的高科技公司,其編寫的教材非常注重選取軟件開發(fā)中的必需、常用內(nèi)容,同時也很注重內(nèi)容的易學、方便性以及相關知識的拓展性,深受讀者喜愛。其教材多次榮獲全行業(yè)優(yōu)秀暢銷品種全國高校出版社優(yōu)秀暢銷書等獎項,多個品種長期位居同類圖書銷售排行榜的前列。
第1篇 基礎知識
第1章 初識Java 2
1.1 Java簡介 2
1.1.1 什么是Java語言 2
1.1.2 Java的應用領域 3
1.1.3 Java的版本 3
1.1.4 怎樣學好Java 5
1.1.5 Java API文檔 6
1.2 Java語言的特性 6
1.3 搭建Java環(huán)境 8
1.3.1 下載JDK 8
1.3.2 在Windows 10系統(tǒng)下搭建JDK環(huán)境 9
第2章 開發(fā)工具 12
2.1 熟悉IDEA 12
2.1.1 下載IDEA 12
2.1.2 安裝IDEA 14
2.1.3 配置IDEA 16
2.1.4 使用IDEA 17
2.2 熟悉Eclipse 22
2.2.1 下載Eclipse 22
2.2.2 Eclipse的配置與啟動 24
2.2.3 Eclipse工作臺 25
2.2.4 透視圖與視圖 26
2.2.5 菜單欄 26
2.2.6 工具欄 26
2.2.7 包資源管理器視圖 29
2.2.8 控制臺視圖 29
2.3 使用Eclipse 29
2.3.1 創(chuàng)建Java項目 29
2.3.2 創(chuàng)建Java類文件 33
2.3.3 編寫Java程序 34
2.3.4 運行Java程序 36
2.4 程序調(diào)試 38
第3章 Java語言基礎 42
3.1 Java主類結(jié)構(gòu) 42
3.2 基本數(shù)據(jù)類型 44
3.2.1 整數(shù)類型 44
3.2.2 浮點類型 45
3.2.3 字符類型 46
3.2.4 布爾類型 48
3.3 變量與常量 48
3.3.1 標識符和關鍵字 48
3.3.2 聲明變量 50
3.3.3 聲明常量 51
3.3.4 變量的有效范圍 52
3.4 運算符 53
3.4.1 賦值運算符 53
3.4.2 算術運算符 54
3.4.3 自增和自減運算符 55
3.4.4 比較運算符 55
3.4.5 邏輯運算符 56
3.4.6 位運算符 57
3.4.7 復合賦值運算符 58
3.4.8 三元運算符 59
3.4.9 運算符的優(yōu)先級 60
3.5 數(shù)據(jù)類型轉(zhuǎn)換 61
3.5.1 隱式類型轉(zhuǎn)換 61
3.5.2 顯式類型轉(zhuǎn)換 62
3.6 代碼注釋與編碼規(guī)范 63
3.6.1 代碼注釋 63
3.6.2 編碼規(guī)范 64
3.7 實踐與練習 65
第4章 流程控制 66
4.1 復合語句 67
4.2 if條件語句 67
4.2.1 簡單的if條件語句 68
4.2.2 if…else語句 69
4.2.3 if…else if多分支語句 69
4.2.4 if語句的嵌套 71
4.3 switch多分支語句 72
4.3.1 switch語句通用語法 72
4.3.2 switch表達式 74
4.4 while循環(huán)語句 74
4.5 do…while循環(huán)語句 75
4.6 for循環(huán)語句 76
4.6.1 傳統(tǒng)的for語句 76
4.6.2 foreach語句 77
4.7 循環(huán)嵌套 78
4.8 循環(huán)控制 79
4.8.1 break語句 79
4.8.2 continue語句 81
4.9 實踐與練習 82
第5章 數(shù)組 84
5.1 數(shù)組概述 84
5.2 一維數(shù)組 84
5.2.1 創(chuàng)建一維數(shù)組 84
5.2.2 初始化一維數(shù)組 86
5.2.3 使用一維數(shù)組 86
5.3 二維數(shù)組 87
5.3.1 創(chuàng)建二維數(shù)組 87
5.3.2 初始化二維數(shù)組 88
5.3.3 使用二維數(shù)組 88
5.4 數(shù)組的基本操作 89
5.4.1 遍歷數(shù)組 89
5.4.2 填充替換數(shù)組元素 90
5.4.3 對數(shù)組進行排序 91
5.4.4 復制數(shù)組 92
5.4.5 查詢數(shù)組 93
5.5 數(shù)組排序算法 95
5.5.1 冒泡排序 95
5.5.2 直接選擇排序 97
5.5.3 反轉(zhuǎn)排序 98
5.6 實踐與練習 99
第2篇 面向?qū)ο缶幊?br />第6章 類和對象 102
6.1 面向?qū)ο蟾攀?102
6.1.1 對象 102
6.1.2 類 104
6.1.3 封裝 104
6.1.4 繼承 104
6.1.5 多態(tài) 105
6.2 類 106
6.2.1 成員變量 106
6.2.2 成員方法 107
6.2.3 權限修飾符 107
6.2.4 局部變量 108
6.2.5 局部變量的有效范圍 109
6.2.6 this關鍵字 109
6.3 類的構(gòu)造方法 110
6.4 靜態(tài)變量和靜態(tài)方法 112
6.5 類的主方法 114
6.6 對象 115
6.6.1 對象的創(chuàng)建 115
6.6.2 訪問對象的屬性和行為 116
6.6.3 對象的引用 117
6.6.4 對象的銷毀 118
6.7 實踐與練習 119
第7章 繼承、多態(tài)、抽象類與接口 120
7.1 類的繼承 120
7.2 Object類 122
7.3 對象類型的轉(zhuǎn)換 125
7.3.1 向上轉(zhuǎn)型 125
7.3.2 向下轉(zhuǎn)型 126
7.4 instanceof關鍵字及其新特性 127
7.5 方法的重載 129
7.6 final關鍵字 132
7.6.1 final變量 132
7.6.2 final方法 133
7.6.3 final類 133
7.7 record類 134
7.8 多態(tài) 135
7.9 抽象類 136
7.10 接口 137
7.10.1 定義接口 137
7.10.2 實現(xiàn)接口 138
7.10.3 接口繼承接口 140
7.10.4 接口的多重繼承 141
7.10.5 接口的默認方法 142
7.10.6 抽象類與接口的區(qū)別 142
7.11 實踐與練習 143
第8章 包和內(nèi)部類 145
8.1 Java類包 145
8.1.1 類名沖突 145
8.1.2 完整的類路徑 146
8.1.3 創(chuàng)建包 146
8.1.4 導入包 147
8.2 內(nèi)部類 148
8.2.1 成員內(nèi)部類 149
8.2.2 匿名內(nèi)部類 151
8.3 實踐與練習 152
第3篇 核心技術
第9章 異常處理 154
9.1 異常概述 154
9.2 異常的拋出與捕捉 155
9.2.1 拋出異常 155
9.2.2 使用try…catch…finally語句捕捉異常 156
9.3 Java常見的異常類 158
9.4 自定義異常 158
9.5 在方法中拋出異常 159
9.5.1 使用throws關鍵字拋出異常 160
9.5.2 使用throw關鍵字拋出異常 160
9.6 運行時異常 162
9.7 try…with…resources語句 162
9.8 異常的使用原則 164
9.9 實踐與練習 164
第10章 字符串 166
10.1 String類 166
10.1.1 聲明字符串 166
10.1.2 創(chuàng)建字符串 167
10.2 連接字符串 168
10.2.1 連接多個字符串 168
10.2.2 連接其他數(shù)據(jù)類型 168
10.3 獲取字符串信息 170
10.3.1 獲取字符串長度 170
10.3.2 查找字符串 170
10.3.3 獲取指定索引位置的字符 171
10.4 字符串操作 172
10.4.1 獲取子字符串 172
10.4.2 去除空格 173
10.4.3 替換字符串 173
10.4.4 判斷字符串的開始與結(jié)尾 174
10.4.5 判斷字符串是否相等 175
10.4.6 按字典順序比較兩個字符串 176
10.4.7 字母大小寫的轉(zhuǎn)換 177
10.4.8 分割字符串 178
10.5 格式化字符串 179
10.5.1 日期和時間字符串格式化 179
10.5.2 常規(guī)類型格式化 182
10.6 使用正則表達式 183
10.7 字符串生成器 185
10.8 實踐與練習 187
第11章 常用類庫 188
11.1 包裝類 188
11.1.1 Integer類 189
11.1.2 Double類 190
11.1.3 Boolean類 191
11.1.4 Character類 192
11.1.5 Number類 194
11.2 數(shù)字處理 194
11.2.1 數(shù)字格式化 194
11.2.2 Math類 197
11.2.3 Random類 200
11.2.4 BigInteger類 202
11.2.5 BigDecimal類 203
11.3 System類 205
11.3.1 在控制臺中輸出字符 205
11.3.2 計時 206
11.4 Scanner類 207
11.5 日期時間類 208
11.5.1 Date類 209
11.5.2 日期時間格式化類 210
11.5.3 Calendar類 213
11.6 實踐與練習 215
第12章 集合類 216
12.1 集合類概述 216
12.2 Collection接口 217
12.3 List接口 218
12.3.1 List接口概述 218
12.3.2 ArrayList類 218
12.3.3 LinkedList類 219
12.4 遍歷集合中的元素 220
12.4.1 Iterator遍歷集合中的元素 220
12.4.2 使用foreach循環(huán)遍歷集合中的元素 221
12.4.3 使用forEach()方法遍歷集合中的元素 222
12.5 使用Predicate操作集合 222
12.6 Set接口 224
12.6.1 Set接口概述 224
12.6.2 HashSet類 224
12.6.3 TreeSet類 225
12.7 Map接口 226
12.7.1 Map接口概述 227
12.7.2 HashMap類 227
12.7.3 遍歷Map集合 228
12.7.4 TreeMap類 229
12.7.5 Properties類 230
12.8 Collections類 232
12.9 實踐與練習 233
第13章 枚舉類型與泛型 234
13.1 枚舉類型 234
13.1.1 使用枚舉類型設置常量 234
13.1.2 深入了解枚舉類型 236
13.1.3 使用枚舉類型的優(yōu)勢 239
13.2 泛型 239
13.2.1 回顧向上轉(zhuǎn)型與向下轉(zhuǎn)型 239
13.2.2 定義泛型類 240
13.2.3 泛型的常規(guī)用法 241
13.2.4 泛型的高級用法 243
13.2.5 泛型總結(jié) 245
13.3 實踐與練習 246
第14章 lambda表達式與流處理 247
14.1 lambda表達式 247
14.1.1 lambda表達式簡介 247
14.1.2 lambda表達式實現(xiàn)函數(shù)式接口 248
14.1.3 lambda表達式調(diào)用外部變量 250
14.1.4 lambda表達式與異常處理 252
14.2 方法的引用 253
14.2.1 引用靜態(tài)方法 253
14.2.2 引用成員方法 254
14.2.3 引用帶泛型的方法 255
14.2.4 引用構(gòu)造方法 256
14.2.5 Function接口 258
14.3 流處理 259
14.3.1 Stream接口 260
14.3.2 Optional類 262
14.3.3 Collectors類 263
14.3.4 數(shù)據(jù)過濾 264
14.3.5 數(shù)據(jù)映射 267
14.3.6 數(shù)據(jù)查找 268
14.3.7 數(shù)據(jù)收集 271
14.4 實踐與練習 275
第15章 I/O(輸入/輸出) 276
15.1 輸入/輸出流 276
15.1.1 InputStream字節(jié)/Reader字符輸入流 277
15.1.2 OutputStream字節(jié)/Writer字符輸出流 278
15.2 File類 279
15.2.1 文件的創(chuàng)建與刪除 279
15.2.2 獲取文件信息 280
15.3 文件輸入/輸出流 281
15.3.1 FileInputStream類和FileOutputStream類 281
15.3.2 FileReader類和FileWriter類 282
15.4 帶緩存的輸入/輸出流 283
15.4.1 BufferedInputStream類和BufferedOutputStream類 283
15.4.2 BufferedReader類和BufferedWriter類 284
15.5 數(shù)據(jù)輸入/輸出流 285
15.6 對象序列化輸入/輸出流 287
15.6.1 序列化對象 288
15.6.2 反序列化對象 289
15.7 實踐與練習 289
第16章 反射與注解 290
16.1 反射 290
16.1.1 訪問構(gòu)造方法 291
16.1.2 訪問成員變量 294
16.1.3 訪問成員方法 297
16.2 Annotation注解功能 300
16.2.1 定義Annotation類型 300
16.2.2 訪問Annotation信息 302
16.3 實踐與練習 305
第17章 數(shù)據(jù)庫操作 306
17.1 數(shù)據(jù)庫基礎 306
17.1.1 什么是數(shù)據(jù)庫 307
17.1.2 數(shù)據(jù)庫的種類和功能 307
17.1.3 SQL語言 308
17.2 JDBC概述 309
17.2.1 JDBC技術 309
17.2.2 JDBC驅(qū)動程序的類型 310
17.3 JDBC中常用的類和接口 310
17.3.1 DriverManager類 310
17.3.2 Connection接口 311
17.3.3 Statement接口 312
17.3.4 PreparedStatement接口 312
17.3.5 ResultSet接口 313
17.4 數(shù)據(jù)庫操作 314
17.4.1 連接數(shù)據(jù)庫 314
17.4.2 向數(shù)據(jù)庫中發(fā)送SQL語句 315
17.4.3 處理查詢結(jié)果集 315
17.4.4 順序查詢 315
17.4.5 模糊查詢 316
17.4.6 預處理語句 317
17.4.7 添加、修改、刪除記錄 318
17.5 實踐與練習 321
第18章 Swing程序設計 322
18.1 Swing概述 323
18.2 常用窗體 324
18.2.1 JFrame窗體 324
18.2.2 JDialog對話框 326
18.2.3 JOptionPane小型對話框 327
18.3 常用布局管理器 331
18.3.1 null絕對布局管理器 331
18.3.2 FlowLayout流布局管理器 332
18.3.3 BorderLayout邊界布局管理器 333
18.3.4 GridLayout網(wǎng)格布局管理器 334
18.4 常用面板 335
18.4.1 JPanel面板 335
18.4.2 JScrollPane滾動面板 337
18.5 文字標簽組件與圖標 338
18.5.1 JLabel標簽 338
18.5.2 圖標的使用 339
18.6 按鈕組件 340
18.6.1 JButton按鈕 340
18.6.2 JRadioButton單選按鈕 341
18.6.3 JCheckBox復選框 343
18.7 列表組件 344
18.7.1 JComboBox下拉列表框 344
18.7.2 JList列表框 346
18.8 文本組件 347
18.8.1 JTextField文本框 347
18.8.2 JPasswordField密碼框 348
18.8.3 JTextArea文本域 349
18.9 表格組件 350
18.9.1 創(chuàng)建表格 350
18.9.2 DefaultTableModel表格數(shù)據(jù)模型 351
18.9.3 維護表格模型 352
18.10 事件監(jiān)聽器 354
18.10.1 ActionEvent動作事件 354
18.10.2 KeyEvent鍵盤事件 356
18.10.3 MouseEvent鼠標事件 357
18.11 實踐與練習 359
第19章 Java繪圖 360
19.1 Java繪圖類 360
19.1.1 Graphics類 360
19.1.2 Graphics2D類 361
19.2 繪制圖形 361
19.3 繪圖顏色與畫筆屬性 365
19.3.1 設置顏色 365
19.3.2 設置畫筆 366
19.4 繪制文本 367
19.4.1 設置字體 367
19.4.2 顯示文字 367
19.5 顯示圖片 369
19.6 圖像處理 370
19.6.1 放大與縮小 370
19.6.2 圖像翻轉(zhuǎn) 372
19.6.3 圖像旋轉(zhuǎn) 374
19.6.4 圖像傾斜 375
19.7 實踐與練習 376
第20章 多線程 377
20.1 線程簡介 377
20.2 創(chuàng)建線程 378
20.2.1 繼承Thread類 378
20.2.2 實現(xiàn)Runnable接口 379
20.2.3 實現(xiàn)Callable接口 381
20.3 線程的生命周期 382
20.4 操作線程的方法 383
20.4.1 線程的休眠 383
20.4.2 線程的加入 384
20.4.3 線程的中斷 386
20.4.4 線程的禮讓 387
20.5 線程的優(yōu)先級 387
20.6 線程同步 389
20.6.1 線程安全 389
20.6.2 線程同步機制 390
20.7 實踐與練習 392
第21章 并發(fā) 393
21.1 并發(fā)編程 393
21.2 yield()方法 394
21.3 線程上下文切換與死鎖 395
21.3.1 線程的上下文切換 396
21.3.2 線程死鎖 396
21.3.3 避免死鎖 398
21.4 守護線程與用戶線程 399
21.4.1 守護線程與用戶線程的區(qū)別 399
21.4.2 守護線程 399
21.5 ThreadLocal 401
21.6 生產(chǎn)者與消費者模式 402
21.6.1 wait()方法和notify()方法 403
21.6.2 await()方法和signal()方法 405
21.7 線程池 408
21.8 實踐與練習 412
第22章 網(wǎng)絡通信 413
22.1 網(wǎng)絡程序設計基礎 413
22.1.1 局域網(wǎng)與互聯(lián)網(wǎng) 413
22.1.2 網(wǎng)絡協(xié)議 414
22.1.3 端口與套接字 415
22.2 TCP程序 415
22.2.1 InetAddress類 416
22.2.2 ServerSocket類 417
22.2.3 TCP網(wǎng)絡程序設計 418
22.3 UDP程序 421
22.3.1 DatagramPacket類 421
22.3.2 DatagramSocket類 421
22.3.3 UDP網(wǎng)絡程序設計 422
22.4 NIO同步非阻塞網(wǎng)絡編程 425
22.5 AIO異步非阻塞網(wǎng)絡編程 428
22.6 實踐與練習 429
第4篇 項目實戰(zhàn)
第23章 飛機大戰(zhàn)游戲 432
23.1 需求分析 432
23.2 系統(tǒng)設計 433
23.2.1 系統(tǒng)目標 433
23.2.2 系統(tǒng)功能結(jié)構(gòu) 433
23.2.3 業(yè)務流程圖 433
23.2.4 系統(tǒng)預覽 433
23.3 技術準備 434
23.3.1 Timer類的概念 434
23.3.2 Timer類注意事項 435
23.4 公共模塊設計 435
23.5 玩家飛機模型設計 437
23.6 敵機模型設計 439
23.7 導彈模型設計 440
23.8 空投物資模型設計 441
23.9 游戲面板模型設計 442
第24章 MR人臉識別打卡系統(tǒng) 449
24.1 需求分析 449
24.2 系統(tǒng)設計 450
24.2.1 開發(fā)環(huán)境 450
24.2.2 系統(tǒng)功能結(jié)構(gòu) 450
24.2.3 系統(tǒng)業(yè)務流程 450
24.3 數(shù)據(jù)庫與數(shù)據(jù)表設計 451
24.3.1 數(shù)據(jù)庫分析 451
24.3.2 數(shù)據(jù)表設計 452
24.4 系統(tǒng)文件夾組織結(jié)構(gòu) 453
24.5 工具類的設計 454
24.5.1 日期時間工具類 455
24.5.2 數(shù)據(jù)庫連接工具類 457
24.6 實體類的設計 458
24.7 數(shù)據(jù)庫接口及實現(xiàn)類設計 459
24.7.1 數(shù)據(jù)庫接口 460
24.7.2 基于MySQL數(shù)據(jù)庫的接口實現(xiàn)類 461
24.7.3 數(shù)據(jù)庫接口工廠類 464
24.8 全局會話類的設計 464
24.9 服務類的設計 466
24.9.1 攝像頭服務 466
24.9.2 人臉識別服務 467
24.9.3 人事服務 470
24.9.4 圖像文件服務 476
24.10 窗體類的設計 478
24.10.1 主窗體 478
24.10.2 主面板 479
24.10.3 登錄對話框 483
24.10.4 考勤報表面板 484
24.10.5 員工管理面板 488
24.10.6 錄入新員工面板 490
24.11 常見問題與解決 492
24.11.1 如何運行項目 492
24.11.2 無法激活人臉識別引擎 492
24.11.3 無法連接MySQL數(shù)據(jù)庫 493
24.11.4 如何切換成SQLite數(shù)據(jù)庫 493