Java是互聯(lián)網(wǎng)時代重要的編程語言之一。 本書從初學(xué)者的角度出發(fā),通過典型的案例、簡單清晰的圖示、通俗易懂的語言,深入淺出地介紹了Java應(yīng)用開發(fā)中使用的重點技術(shù)。 全書共20章,第1~5章講解Java特點和開發(fā)環(huán)境搭建、Java語言基礎(chǔ)、程序流程控制、數(shù)組和方法,這些內(nèi)容是Java的基礎(chǔ)知識;第6~8章講解Java面向?qū)ο缶幊讨R,包括類與對象,構(gòu)造方法,封裝性,this、static和super等關(guān)鍵字,繼承、抽象類、接口、多態(tài)性、類之間的關(guān)系、單例模式和簡單工廠模式等,這些內(nèi)容是Java的核心內(nèi)容;第9~15章講解包及訪問控制權(quán)限、異常處理、泛型、常用類、I/O系統(tǒng)、集合、JDBC編程等,這些內(nèi)容是Java的重點難點;第16~20章講解注解、圖形用戶界面、反射、多線程和網(wǎng)絡(luò)編程,這些內(nèi)容是Java應(yīng)用開發(fā)基礎(chǔ)。 本書列舉了300多個程序案例、繪制了300多個圖示、布置了100多道習(xí)題,方便讀者快速理解相關(guān)知識點并掌握應(yīng)用技巧。本書還提供了豐富的配套教學(xué)資源,包括教學(xué)大綱、教學(xué)視頻2100余分鐘、題庫2200多道、精美PPT課件1800余頁、所有源程序代碼和習(xí)題參考答案。本書所有資源部署在學(xué)銀在線慕課平臺,所有程序在JDK 17上運行通過,掃描隨書提供的二維碼可觀看相應(yīng)內(nèi)容的講解視頻。 本書可作為高等院校相關(guān)專業(yè)的Java程序設(shè)計課程教材,也可作為Java語言的自學(xué)者入門用書。
通俗易懂,快速入門。內(nèi)容結(jié)構(gòu)上各知識點循序漸進(jìn),闡述簡練準(zhǔn)確,以問題為出發(fā)點,激發(fā)讀者學(xué)習(xí)興趣,探索求知精神。
掃碼學(xué)習(xí),隨心所欲。書中大部分內(nèi)容配備了授課視頻的二維碼,讀者通過掃碼隨時隨地學(xué)習(xí),突破時空限制。
能量滿滿,情懷湯湯。本書著眼立德樹人,大力傳播社會主義核心價值觀、傳統(tǒng)文化和正能量,潛移默化培養(yǎng)責(zé)任、擔(dān)當(dāng)、上進(jìn)意識。
資源豐富,方便教學(xué)。課程資源包括教學(xué)大綱、教學(xué)日歷、精美授課PPT、配有字幕的理論視頻和編程視頻(共2100余分鐘)、按章節(jié)分類的題庫。
從事有趣的、富有挑戰(zhàn)性的設(shè)計,本身就是一種愉快的享受。
王選
只要你有一件合理的事去做,你的生活就會顯得特別美好。
阿爾伯特·愛因斯坦
2006年,作者第一次講授Java程序設(shè)計課程就被Java高超的設(shè)計思想深深吸引。此后作者一直有幸講授該課程,見證了Java語言的繁榮與發(fā)展,至今仍生機(jī)勃勃。作者從事Java程序設(shè)計課程教學(xué)17年來,使用過多種不同類型的教材,也接觸了一批優(yōu)秀教材。多年的教學(xué)實踐讓作者體會到一些教材存在不足,例如理論講解多、針對性案例少,闡述晦澀、理解困難,案例過于簡單、啟發(fā)性不強,重傳授科學(xué)知識、輕育人內(nèi)容等。
作為一名合格的高校教師,不僅傳道授業(yè)解惑,還應(yīng)注重通過教材傳播更多正能量,學(xué)生在掌握專業(yè)知識的同時,在潛移默化中鍛造積極向上、奮勇拼搏、健康樂觀的人生態(tài)度和高尚品格。
作者平時在教學(xué)實踐、科學(xué)研究和帶領(lǐng)學(xué)生團(tuán)隊過程中注意收集素材、積累資料、參與各種培訓(xùn)和學(xué)校組織的理論學(xué)習(xí),不斷有新感覺、新體會。
2019年,印發(fā)《關(guān)于一流本科課程建設(shè)的實施意見》,明確了一流本科課程建設(shè)標(biāo)準(zhǔn),課程建設(shè)(包括錄制視頻、建設(shè)題庫、開發(fā)項目、線上線下混合教學(xué)、研討式翻轉(zhuǎn)課堂教學(xué)等)驟然有了無限生機(jī)。作者的Java程序設(shè)計課程線上訪問量近1000萬次,學(xué)銀在線慕課平臺示范教學(xué)包被引用800余次,惠及2萬余名學(xué)生。2020年主持的Java程序設(shè)計Ⅰ被認(rèn)定為首批國家級線上線下混合式一流本科課程,2021年主持的設(shè)計模式被認(rèn)定為湖南省線上一流本科課程。
2020年,印發(fā)《高等學(xué)校課程思政建設(shè)指導(dǎo)綱要》,落實立德樹人根本任務(wù),圍繞政治認(rèn)同、家國情懷、文化素養(yǎng)、憲法法治意識、道德修養(yǎng)等重點優(yōu)化課程思政內(nèi)容供給,系統(tǒng)進(jìn)行中國特色社會主義和中國夢教育、社會主義核心價值觀教育、法治教育、勞動教育、心理健康教育、中華優(yōu)秀傳統(tǒng)文化教育,堅定學(xué)生理想信念,切實提升立德樹人的成效。
作者已從事20多年的高等教育,積累了豐富的教學(xué)經(jīng)驗,作為學(xué)校教學(xué)督導(dǎo)團(tuán)專家以及國家級一流本科課程評審專家,一直在思考,教材作為傳播知識的載體,如何在教材中落實教書育人任務(wù)?本書大膽改革課程內(nèi)容,基于CDIO理念和案例驅(qū)動,提高讀者編程能力和應(yīng)用基礎(chǔ)Java API解決實際問題的能力,更新課程內(nèi)容,緊跟Java語言發(fā)展,貫徹落實立德樹人,傳播社會主義核心價值觀、優(yōu)秀傳統(tǒng)文化和正能量。
想法很多,付諸行動需要勇氣和毅力。
總想閑時付諸行動,卻終是找不到閑暇。某天與友人茶余飯后,幡然醒悟,當(dāng)下即是開始。隨即打開10年前的聯(lián)想R400,沒有儀式,沒有思考,一切靜悄悄,就像和多年熟識的老朋友相見那么自然。
本書特色如下。
(1) 通俗易懂,快速入門。在內(nèi)容結(jié)構(gòu)上各知識點循序漸進(jìn),闡述簡練準(zhǔn)確。以問題為出發(fā)點,激發(fā)讀者學(xué)習(xí)興趣,探索求知精神。大量圖示幫助讀者理解編程要點;每個程序都有詳細(xì)注釋,幫助讀者快速吸收編程難點;典型案例淺顯易懂,幫助讀者更透徹地分析;書后習(xí)題幫助讀者理解關(guān)鍵知識點。理論與實踐結(jié)合,實踐驗證理論,理論指導(dǎo)實踐。讀者在愉快的學(xué)習(xí)過程中理解理論,提升實踐能力,提高學(xué)習(xí)獲得感和成就感。
(2) 資源豐富,難度降低。本書配2100余分鐘帶字幕的教學(xué)視頻,其中PPT理論授課視頻600余分鐘,編程演示視頻1400余分鐘;提供了300余個程序案例。所有資源部署在學(xué)銀在線慕課平臺。
(3) 掃碼學(xué)習(xí),隨心所欲。書中大部分內(nèi)容配備了授課視頻二維碼,讀者通過手機(jī)掃碼隨時隨地學(xué),突破時空限制,滿足按需學(xué)習(xí)。
(4) 能量滿滿,匠心情懷。本書著眼立德樹人,部分案例充滿愛國情懷,鍛造工匠精神,通篇注重環(huán)保意識,培育社會主義核心價值觀、正確人生觀,潛移默化培養(yǎng)擔(dān)當(dāng)、責(zé)任、上進(jìn)意識。
(5) 分類清晰,教學(xué)容易。課程資源包括三綱、理論授課視頻、編程演示視頻、按章節(jié)分類題庫,授課教師能根據(jù)教學(xué)進(jìn)度和需要,任意組織教學(xué)內(nèi)容。通過課程平臺,授課教師能輕松獲取所有教學(xué)資源。
本書是作者從教20多年的感悟,書中內(nèi)容字斟句酌、反復(fù)推敲、不斷總結(jié)、推陳出新,畢竟知識和水平有限,書中難免存在紕漏,懇請讀者提出寶貴意見和建議。
感謝同事們一起研究教材結(jié)構(gòu)、提供眾多資源素材和視頻制作,使本書內(nèi)容更加充實豐滿,富有情懷。
感謝親人和朋友們多年來的大力支持,使作者能全力以赴完成本書,為廣大讀者學(xué)習(xí)了解Java提供較好的平臺和選擇。
感謝啟航學(xué)習(xí)團(tuán)隊和吉首大學(xué)計算機(jī)科學(xué)與工程學(xué)院的同學(xué)們,使作者體會到工作的樂趣。
若本書對讀者有所啟發(fā)和幫助,作者將歡欣鼓舞。祝讀者學(xué)習(xí)快樂!
作者2023年3月
第1章Java概述1
1.1初識Java1
1.1.1Java的發(fā)展1
1.1.2Java的特點2
1.2Java開發(fā)環(huán)境3
1.2.1Java運行機(jī)制3
1.2.2搭建開發(fā)環(huán)境4
1.2.3第一個Java程序6
1.3Eclipse集成開發(fā)環(huán)境8
1.3.1Eclipse簡介8
1.3.2安裝Eclipse9
1.3.3建立Java項目10
1.4Java命名規(guī)范13
1.5小結(jié)13
1.6習(xí)題13
第2章Java語言基礎(chǔ)15
2.1Java程序結(jié)構(gòu)15
2.2注釋及編程風(fēng)格17
2.2.1注釋17
2.2.2Java編程風(fēng)格17
2.3Java符號集18
2.3.1Java符號系統(tǒng)18
2.3.2標(biāo)識符19
2.3.3關(guān)鍵字20
2.4數(shù)據(jù)類型21
2.4.1數(shù)據(jù)類型概念21
2.4.2常量22
2.4.3變量252.4.4整數(shù)類型26
2.4.5浮點數(shù)類型26
2.4.6字符類型27
2.4.7布爾類型28
2.5數(shù)據(jù)類型轉(zhuǎn)換29
2.5.1自動轉(zhuǎn)換29
2.5.2強制轉(zhuǎn)換30
2.5.3字符串的轉(zhuǎn)換30
2.6表達(dá)式與語句31
2.6.1算術(shù)表達(dá)式31
2.6.2賦值表達(dá)式32
2.6.3關(guān)系表達(dá)式33
2.6.4邏輯表達(dá)式34
2.6.5表達(dá)式語句35
2.6.6運算符的優(yōu)先級35
2.7小結(jié)36
2.8習(xí)題36
〖3〗Java編程基礎(chǔ)(微課版)目錄〖3〗第3章程序流程控制39
3.1選擇結(jié)構(gòu)39
3.1.1if語句39
3.1.2switch語句42
3.1.3條件運算符45
3.2循環(huán)結(jié)構(gòu)46
3.2.1while語句46
3.2.2do…while語句47
3.2.3for語句50
3.2.4嵌套循環(huán)51
3.3跳轉(zhuǎn)語句53
3.3.1break語句53
3.3.2continue語句54
3.3.3return語句55
3.4小結(jié)56
3.5習(xí)題56
第4章數(shù)組58
4.1一維數(shù)組58
4.1.1聲明一維數(shù)組58
4.1.2初始化一維數(shù)組59
4.1.3使用一維數(shù)組60
4.2二維數(shù)組62
4.2.1聲明與初始化二維數(shù)組62
4.2.2使用二維數(shù)組63
4.3foreach語句65
4.4不規(guī)則數(shù)組66
4.5小結(jié)67
4.6習(xí)題68
第5章方法70
5.1傳統(tǒng)方法70
5.1.1方法的概念70
5.1.2定義及調(diào)用傳統(tǒng)方法70
5.1.3參數(shù)傳遞方式72
5.2形參長度可變方法73
5.2.1形參長度可變方法的概念73
5.2.2定義形參長度可變方法73
5.2.3調(diào)用形參長度可變方法74
5.3方法重載75
5.4遞歸方法77
5.5小結(jié)78
5.6習(xí)題78
第6章面向?qū)ο缶幊蹋ㄉ希?0
6.1軟件開發(fā)方法80
6.1.1結(jié)構(gòu)化開發(fā)方法81
6.1.2面向?qū)ο箝_發(fā)方法81
6.2類與對象84
6.2.1定義類84
6.2.2創(chuàng)建使用對象86
6.2.3成員方法與數(shù)據(jù)成員90
6.3構(gòu)造方法92
6.3.1構(gòu)造方法的概念92
6.3.2使用構(gòu)造方法93
6.3.3默認(rèn)構(gòu)造方法95
6.4匿名對象95
6.5封裝性96
6.5.1封裝的概念96
6.5.2private關(guān)鍵字97
6.5.3setter和getter方法99
6.6this關(guān)鍵字101
6.6.1this作用101
6.6.2引用數(shù)據(jù)成員102
6.6.3引用成員方法103
6.6.4調(diào)用構(gòu)造方法104
6.6.5this本質(zhì)105
6.6.6對象比較106
6.7綜合案例108
6.7.1分析數(shù)據(jù)成員108
6.7.2分析構(gòu)造方法和成員方法109
6.7.3畫類圖109
6.7.4編碼測試110
6.8static關(guān)鍵字111
6.8.1static作用111
6.8.2修飾數(shù)據(jù)成員112
6.8.3修飾成員方法114
6.8.4修飾代碼塊117
6.8.5main方法119
6.8.6static綜合應(yīng)用120
6.9對象數(shù)組122
6.10內(nèi)部類125
6.10.1內(nèi)部類概念125
6.10.2成員內(nèi)部類125
6.10.3靜態(tài)內(nèi)部類127
6.10.4局部內(nèi)部類128
6.11小結(jié)128
6.12習(xí)題129
第7章面向?qū)ο缶幊蹋ㄖ校?31
7.1繼承131
7.1.1繼承的概念131
7.1.2創(chuàng)建子類134
7.1.3方法覆寫與屬性覆蓋137
7.2super關(guān)鍵字140
7.3final關(guān)鍵字144
7.3.1修飾類144
7.3.2修飾成員方法144
7.3.3修飾數(shù)據(jù)成員145
7.4instanceof運算符146
7.5抽象類147
7.5.1抽象類的概念147
7.5.2定義抽象類148
7.5.3抽象類的應(yīng)用150
7.6接口152
7.6.1接口的概念152
7.6.2定義接口152
7.6.3應(yīng)用接口156
7.7對象多態(tài)性160
7.7.1多態(tài)的概念160
7.7.2實現(xiàn)多態(tài)161
7.7.3對象轉(zhuǎn)型163
7.7.4方法重載和對象多態(tài)的區(qū)別164
7.8對象多態(tài)案例166
7.9匿名內(nèi)部類169
7.10小結(jié)171
7.11習(xí)題171
第8章面向?qū)ο缶幊蹋ㄏ拢?73
8.1類之間的6種關(guān)系173
8.1.1繼承關(guān)系174
8.1.2實現(xiàn)關(guān)系174
8.1.3依賴關(guān)系175
8.1.4關(guān)聯(lián)關(guān)系176
8.1.5聚合關(guān)系178
8.1.6組合關(guān)系181
8.2單例模式183
8.2.1單例模式的概念183
8.2.2兩種單例模式184
8.2.3單例模式案例185
8.3簡單工廠模式186
8.3.1簡單工廠模式概念186
8.3.2簡單工廠模式類圖186
8.3.3簡單工廠模式案例187
8.4小結(jié)189
8.5習(xí)題189
第9章包及訪問控制權(quán)限192
9.1包192
9.1.1包的概念192
9.1.2定義包192
9.1.3使用包194
9.1.4常見包197
9.2訪問控制權(quán)限197
9.3小結(jié)199
9.4習(xí)題199
第10章異常處理200
10.1基本概念200
10.2異常處理機(jī)制202
10.2.1異常處理方式202
10.2.2異常類結(jié)構(gòu)203
10.3try…catch…finally語句205
10.4throws關(guān)鍵字209
10.5throw語句及自定義異常211
10.5.1throw語句211
10.5.2自定義異常211
10.6異常綜合案例212
10.7小結(jié)213
10.8習(xí)題214
第11章泛型216
11.1基本概念216
11.2泛型類218
11.2.1定義泛型類218
11.2.2指定多個類型參數(shù)219
11.2.3泛型繼承220
11.3通配符221
11.4泛型接口223
11.4.1定義泛型接口223
11.4.2實現(xiàn)泛型接口223
11.5泛型方法225
11.6受限泛型227
11.6.1泛型上限227
11.6.2泛型下限228
11.7小結(jié)229
11.8習(xí)題229
第12章常用類231
12.1包裝類231
12.1.1包裝類的概念231
12.1.2裝箱與拆箱232
12.1.3包裝類的應(yīng)用233
12.2字符串類233
12.2.1String類233
12.2.2StringBuffer類235
12.2.3StringBuilder類237
12.3Object類237
12.3.1Object類簡介237
12.3.2常用方法238
12.3.3接收任意對象241
12.4Runtime類243
12.5System類244
12.5.1System類簡介244
12.5.2System類應(yīng)用244
12.5.3垃圾回收對象246
12.6日期類247
12.6.1Date類247
12.6.2Calendar類247
12.6.3DateFormat類248
12.6.4SimpleDateFormat類250
12.7Math類252
12.8Random類252
12.9數(shù)值格式化類253
12.9.1NumberFormat類253
12.9.2DecimalFormat類254
12.10處理大數(shù)256
12.10.1BigInteger類256
12.10.2BigDecimal類257
12.11克隆接口Cloneable258
12.12Arrays類262
12.13比較接口263
12.13.1Comparable接口264
12.13.2Comparator接口265
12.14正則表達(dá)式267
12.14.1正則表達(dá)式簡介267
12.14.2Pattern類和Matcher類267
12.14.3String類對正則表達(dá)式的支持270
12.15小結(jié)271
12.16習(xí)題272
第13章I/O系統(tǒng)274
13.1概述274
13.1.1I/O模型274
13.1.2I/O類結(jié)構(gòu)276
13.2File類278
13.2.1File類簡介278
13.2.2File類的應(yīng)用278
13.3字節(jié)流281
13.3.1字節(jié)流類281
13.3.2FileInputStream類和FileOutputStream類282
13.3.3ByteArrayInputStream類和ByteArrayOutputStream類287
13.3.4PrintStream類288
13.4字符流289
13.4.1字符流類289
13.4.2FileReader類和FileWriter類290
13.4.3CharArrayReader類和CharArrayWriter類293
13.4.4PrintWriter類293
13.5緩沖流295
13.5.1字符緩沖流295
13.5.2字節(jié)緩沖流298
13.6字節(jié)流與字符流轉(zhuǎn)換302
13.6.1轉(zhuǎn)換機(jī)制302
13.6.2InputStreamReader類和OutputStreamWriter類302
13.7隨機(jī)存取類RandomAccessFile305
13.7.1RandomAccessFile類簡介305
13.7.2RandomAccessFile類讀取數(shù)據(jù)306
13.7.3RandomAccessFile類輸出數(shù)據(jù)307
13.8Scanner類309
13.8.1Scanner類簡介309
13.8.2Scanner類應(yīng)用309
13.9System類對I/O的支持311
13.9.1System.out312
13.9.2System.in312
13.9.3System.err313
13.9.4重定向I/O313
13.10數(shù)據(jù)流314
13.10.1DataOutputStream類314
13.10.2DataInputStream類316
13.11對象序列化318
13.11.1序列化簡介318
13.11.2ObjectOutputStream類320
13.11.3ObjectInputStream類321
13.11.4Externalizable接口323
13.11.5transient關(guān)鍵字325
13.11.6序列化數(shù)組326
13.12新I/O327
13.12.1NIO簡介328
13.12.2Buffer328
13.12.3Channel331
13.13小結(jié)333
13.14習(xí)題333
第14章集合336
14.1概述336
14.1.1集合的概念336
14.1.2集合框架337
14.1.3Collection接口338
14.1.4Iterator接口339
14.2Set接口339
14.2.1HashSet類339
14.2.2TreeSet類343
14.3List接口346
14.3.1ArrayList類347
14.3.2ListIterator接口349
14.3.3LinkedList類351
14.3.4Queue接口352
14.3.5Stack類353
14.4Map接口354
14.4.1Map簡介354
14.4.2Map.Entry接口356
14.4.3HashMap類356
14.4.4TreeMap類359
14.4.5輸出Map接口362
14.5屬性類Properties363
14.5.1Properties類簡介363
14.5.2Properties類應(yīng)用364
14.6集合工具類Collections366
14.7小結(jié)368
14.8習(xí)題369
第15章JDBC編程372
15.1JDBC簡介372
15.1.1JDBC概述372
15.1.2JDBC編程步驟374
15.1.3JDBC主要類和接口374
15.2連接數(shù)據(jù)庫375
15.2.1MySQL簡介375
15.2.2連接MySQL服務(wù)器376
15.3查詢數(shù)據(jù)庫379
15.3.1數(shù)據(jù)庫操作環(huán)境379
15.3.2ResultSet接口380
15.3.3查詢案例380
15.4操縱數(shù)據(jù)庫383
15.4.1插入記錄383
15.4.2修改記錄385
15.4.3刪除記錄386
15.5PreparedStatement接口387
15.5.1PreparedStatement接口的優(yōu)點387
15.5.2PreparedStatement接口的應(yīng)用案例388
15.6小結(jié)392
15.7習(xí)題393
第16章注解395
16.1注解簡介395
16.23種標(biāo)準(zhǔn)注解395
16.2.1@Override396
16.2.2@SuppressWarnings396
16.2.3@Deprecated397
16.3自定義注解398
16.44種元注解400
16.4.1@Target400
16.4.2@Retention402
16.4.3@Documented403
16.4.4@Inherited403
16.5小結(jié)404
16.6習(xí)題404
第17章圖形用戶界面406
17.1概述406
17.1.1圖形用戶界面簡介406
17.1.2AWT407
17.1.3Swing409
17.2JFrame容器411
17.3基本組件413
17.3.1JLabel413
17.3.2JButton414
17.3.3JTextField416
17.4布局管理器418
17.4.1FlowLayout418
17.4.2BorderLayout419
17.4.3GridLayout421
17.4.4絕對定位422
17.5其他容器424
17.5.1JPanel424
17.5.2JSplitPane427
17.5.3JTabbedPane429
17.6事件處理431
17.6.1基本概念431
17.6.2事件處理機(jī)制434
17.6.3窗體事件435
17.6.4動作事件437
17.6.5鍵盤事件440
17.6.6鼠標(biāo)事件442
17.6.7適配器445
17.7其他常用組件448
17.7.1JRadioButton448
17.7.2JCheckBox450
17.7.3JComboBox452
17.7.4JList454
17.7.5菜單456
17.7.6JTable460
17.7.7JFileChooser464
17.7.8樹467
17.8小結(jié)470
17.9習(xí)題471
第18章反射473
18.1概述473
18.2Class類474
18.3獲取類結(jié)構(gòu)475
18.3.1獲取父類477
18.3.2獲取接口478
18.3.3獲取構(gòu)造方法479
18.3.4獲取成員方法480
18.3.5獲取數(shù)據(jù)成員481
18.4調(diào)用方法483
18.4.1調(diào)用構(gòu)造方法483
18.4.2調(diào)用成員方法484
18.4.3調(diào)用setter和getter方法485
18.5訪問數(shù)據(jù)成員487
18.6小結(jié)488
18.7習(xí)題488
第19章多線程490
19.1概述490
19.1.1進(jìn)程與線程490
19.1.2線程生命周期492
19.2多線程實現(xiàn)方式493
19.2.1繼承Thread類493
19.2.2實現(xiàn)Runnable接口495
19.3線程常用方法497
19.3.1基本方法497
19.3.2強制執(zhí)行498
19.3.3線程禮讓500
19.4線程同步501
19.4.1同步概念501
19.4.2同步代碼塊502
19.4.3同步方法503
19.4.4同步鎖505
19.5死鎖507
19.6生產(chǎn)者與消費者問題509
19.7小結(jié)512
19.8習(xí)題512
第20章網(wǎng)絡(luò)編程515
20.1網(wǎng)絡(luò)編程基礎(chǔ)515
20.1.1InetAddress類515
20.1.2URL類517
20.1.3URLConnection類519
20.2TCP編程521
20.2.1Socket通信機(jī)制521
20.2.2ServerSocket類與Socket類522
20.2.3TCP編程案例522
20.3UDP編程526
20.3.1UDP通信機(jī)制526
20.3.2DatagramPacket類與DatagramSocket類526
20.3.3UDP編程案例527
20.4小結(jié)531
20.5習(xí)題531