Java是目前最具影響力的、卓越的編程語言之一。Java憑借其編寫一次,到處運行的特性很好地支持互聯(lián)網(wǎng)應(yīng)用所要求的跨平臺能力,成為服務(wù)器端開發(fā)的主流語言,F(xiàn)在人類已進入移動互聯(lián)網(wǎng)時代,而Java依然是當之無愧的主角。隨著人工智能和大數(shù)據(jù)技術(shù)的蓬勃發(fā)展,Java也不斷發(fā)展,使其在數(shù)據(jù)處理方面大有用武之地。
Java是經(jīng)典的面向?qū)ο缶幊陶Z言,同時也是一門優(yōu)秀的教學(xué)語言。Java擁有優(yōu)雅和簡明的語法及豐富的類庫,讓編程人員盡可能地將精力集中在業(yè)務(wù)領(lǐng)域的問題求解上。
本書內(nèi)容具有以下特點:
(1) 作為面向初學(xué)者的教程,本書編寫和取材著重體現(xiàn)Java面向?qū)ο缶幊趟枷牒兔嫦騿栴}求解的理念; 采用基礎(chǔ)優(yōu)先、案例驅(qū)動的教學(xué)方式,從編程基礎(chǔ)開始,逐步引入面向?qū)ο笏枷搿?/p>
(2) 本書包含三大主題: Java編程語言、Java面向?qū)ο笏枷牒蚃ava常用類庫。這些是一名專業(yè)Java程序員必須熟練掌握的核心內(nèi)容。
(3) 本書基于Java 17版本,該版本是一個長期支持的Java版本(LTS)。本書對上一版進行了全面修訂,新增內(nèi)容主要包括JShell編程環(huán)境、新的switch結(jié)構(gòu)和switch表達式、局部變量類型推斷、文本塊、記錄類型等。
全書共分19章,主要內(nèi)容如下:
第1章介紹Java語言的起源和發(fā)展、Java開發(fā)環(huán)境的構(gòu)建、簡單Java程序的開發(fā)和運行、集成開發(fā)環(huán)境Eclipse及JShell的使用。
第2章介紹數(shù)據(jù)類型、常用運算符、表達式及數(shù)據(jù)類型的轉(zhuǎn)換等。
第3章討論程序的流程控制結(jié)構(gòu),包括選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),重點介紹if結(jié)構(gòu)、switch結(jié)構(gòu)、while循環(huán)、do…while循環(huán)及for循環(huán)結(jié)構(gòu)。
第4章重點介紹類的定義以及對象的創(chuàng)建,包括方法的設(shè)計、static修飾符的使用、對象初始化和變量作用域、局部變量類型推斷以及垃圾回收等。
第5章和第6章分別介紹數(shù)組和字符串,它們是基本的編程結(jié)構(gòu),包括數(shù)組和多維數(shù)組、String類和StringBuilder類等,另外還介紹了Arrays類的使用、格式化輸出等。
第7章介紹面向?qū)ο筇卣,主要?nèi)容有包與類庫、封裝性與訪問修飾符、類的繼承、final關(guān)鍵字、對象轉(zhuǎn)換與多態(tài)性等。這些是面向?qū)ο缶幊痰暮诵膬?nèi)容。
第8章介紹Java常用核心類,包括Object類、Math類、System類和基本類型包裝類等,另外介紹了BigInteger和BigDecimal類及新的日期和時間API類。
第9章介紹接口和內(nèi)部類,包括接口的定義、接口繼承、接口實現(xiàn)以及在接口中定義靜態(tài)方法、默認方法和私有方法,還介紹了內(nèi)部類的使用。
第10章介紹Java異常處理,包括異常類型、異常處理機制、自定義異常和斷言的使用。
第11章介紹記錄、枚舉和注解類型。它們是Java的引用數(shù)據(jù)類型,應(yīng)用在特定場合,為編程提供了方便。
第12章介紹泛型和集合,包括泛型編程的基本概念、各種類型集合接口和類的使用、Collections類的常用方法等。
第13章介紹Java輸入輸出,包括二進制流和文本流的使用、對象序列化、Files類的常用操作。
第14章介紹函數(shù)式編程,包括Lambda表達式、函數(shù)式接口的使用及Stream API的基本操作。
第15章和第16章介紹JavaFX圖形界面編程,包括界面布局面板、JavaFX各類形狀的使用、事件處理,還介紹了圖像和特效、多媒體和動畫以及各種常用控件的使用。
第17章介紹JDBC數(shù)據(jù)庫編程,包括JDBC體系結(jié)構(gòu)、數(shù)據(jù)庫訪問步驟、常用的JDBC API以及DAO設(shè)計模式等。
第18章介紹并發(fā)編程基礎(chǔ),主要介紹多線程編程、線程的狀態(tài)與調(diào)度、線程同步與協(xié)調(diào)、并發(fā)工具等。
第19章介紹Java網(wǎng)絡(luò)編程,主要介紹基于TCP的通信、基于UDP的通信、基于HTTP的URL編程等。
附錄A是綜合案例,介紹了6個綜合項目案例,每個案例利用本書介紹的多個知識點實現(xiàn)。讀者應(yīng)仔細分析和研究這些案例的設(shè)計思想,為實現(xiàn)較大的項目奠定堅實基礎(chǔ)。
為便于教學(xué),本書提供豐富的配套資源,包括教學(xué)大綱、教學(xué)課件、電子教案、程序源碼、習題答案、
教學(xué)進度表、在線作業(yè)及答案和30小時的微課視頻。
資源下載提示
課件等資源: 掃描封底的課件下載二維碼,在公眾號書圈下載。
素材(源碼)等資源: 掃描目錄上方的二維碼下載。
在線作業(yè): 掃描封底的作業(yè)系統(tǒng)二維碼,登錄網(wǎng)站在線做題及查看答案。
視頻等資源: 掃描封底的文泉云盤防盜碼,再掃描書中相應(yīng)章節(jié)的二維碼,可以在線學(xué)習。
本書吸取了國內(nèi)外有關(guān)著作和
資料的精華,同時凝聚了作者多年的教學(xué)實踐經(jīng)驗。
本書由沈澤剛主編,傘曉麗、魯富宇、彭霞、孫蕾、宋微、董研、張麗娟和周津等老師參加了部分編寫工作。
感謝清華大學(xué)出版社魏江江分社長的大力支持以及許多編輯的辛勤工作。
感謝使用本書的老師提出的寶貴的修改建議。感謝本書參考的文獻的作者。
由于作者水平有限,書中難免存在不妥和錯誤之處,懇請廣大讀者和同行批評指正。
編者2023年4月
第1章Java起步入門
1.1Java的起源與演進
1.1.1Java的發(fā)展歷程
1.1.2Java語言的優(yōu)點
1.2Java平臺與運行機制
1.2.1Java平臺與應(yīng)用領(lǐng)域
1.2.2JVM、JRE和JDK
1.2.3Java字節(jié)碼與平臺
獨立
1.3建立開發(fā)環(huán)境
1.3.1JDK的下載與安裝
1.3.2關(guān)于環(huán)境變量
1.3.3Java API文檔
1.4第一個Java程序
1.4.1Java程序開發(fā)步驟
1.4.2第一個程序分析
1.5集成開發(fā)環(huán)境
1.5.1使用Eclipse開發(fā)Java
程序
1.5.2使用IntelliJ IDEA開發(fā)
Java程序
1.6JShell交互式編程環(huán)境
1.7小結(jié)
編程練習
第2章數(shù)據(jù)類型與運算符
2.1Java數(shù)據(jù)類型
2.1.1基本數(shù)據(jù)類型
2.1.2引用數(shù)據(jù)類型
2.2標識符與語句
2.2.1Java標識符
2.2.2Java關(guān)鍵字
2.2.3變量與賦值
2.2.4語句
2.3基本數(shù)據(jù)類型及字面值
2.3.1整數(shù)類型
2.3.2浮點類型
2.3.3字符類型
2.3.4布爾類型
2.4字符串類型
2.5軟件開發(fā)過程
2.6數(shù)據(jù)類型轉(zhuǎn)換
2.6.1自動類型轉(zhuǎn)換
2.6.2強制類型轉(zhuǎn)換
2.6.3表達式類型自動提升
2.7運算符
2.7.1算術(shù)運算符
2.7.2關(guān)系運算符
2.7.3邏輯運算符
2.7.4賦值運算符
2.7.5位運算符
2.7.6運算符的優(yōu)先級和
結(jié)合性
2.8程序文檔風格和注釋
2.8.1一致的縮進和空白
2.8.2塊的風格
2.8.3程序注釋
2.9案例學(xué)習求解線性
方程組
2.10案例學(xué)習計算并顯示當前
時間
2.11小結(jié)
編程練習
第3章結(jié)構(gòu)化編程
3.1選擇結(jié)構(gòu)
3.1.1單分支if語句
3.1.2雙分支if…else語句
3.1.3條件運算符
3.1.4嵌套的if語句和多分支的
if…else語句
3.2switch語句與switch表
達式
3.2.1switch語句
3.2.2switch表達式
3.3案例學(xué)習兩位數(shù)加減
運算
3.4循環(huán)結(jié)構(gòu)
3.4.1while循環(huán)
3.4.2do…while循環(huán)
3.4.3for循環(huán)
3.4.4循環(huán)的嵌套
3.4.5break語句和continue
語句
3.5案例學(xué)習求最大公
約數(shù)
3.6案例學(xué)習打印輸出若干
素數(shù)
3.7小結(jié)
編程練習
第4章類、對象和方法
4.1面向?qū)ο蟾攀?/p>
4.1.1OOP的產(chǎn)生
4.1.2基本概念
4.1.3OOP的優(yōu)勢
4.2定義類與創(chuàng)建對象
4.2.1類的定義
4.2.2創(chuàng)建和使用對象
4.2.3用UML圖表示類
4.2.4理解棧與堆
4.3構(gòu)造方法
4.3.1無參數(shù)構(gòu)造方法
4.3.2帶參數(shù)構(gòu)造方法
4.3.3構(gòu)造方法的重載
4.3.4this關(guān)鍵字
4.4案例學(xué)習使用自定義Date
日期類
4.5方法設(shè)計
4.5.1如何設(shè)計方法
4.5.2調(diào)用方法
4.5.3方法重載
4.5.4方法參數(shù)的傳遞
4.6案例學(xué)習分數(shù)類Fraction
的設(shè)計
4.7靜態(tài)變量和靜態(tài)方法
4.7.1靜態(tài)變量
4.7.2靜態(tài)方法
4.7.3靜態(tài)工廠方法
4.7.4單例模式
4.7.5方法遞歸
4.8案例學(xué)習打印斐波那契
數(shù)列
4.9對象初始化
4.9.1實例變量的初始化
4.9.2靜態(tài)變量的初始化
4.10變量的作用域
4.11局部變量類型推斷
4.12垃圾回收
4.13小結(jié)
編程練習
第5章數(shù)組
5.1創(chuàng)建和使用數(shù)組
5.1.1聲明和創(chuàng)建數(shù)組
5.1.2訪問數(shù)組元素
5.1.3數(shù)組初始化器
5.1.4增強的for循環(huán)
5.2數(shù)組的應(yīng)用
5.2.1數(shù)組元素的復(fù)制
5.2.2數(shù)組參數(shù)與返回值
5.2.3可變參數(shù)的方法
5.2.4數(shù)組的查找
5.3案例學(xué)習數(shù)組起泡
排序
5.4java.util.Arrays類
5.4.1數(shù)組的復(fù)制
5.4.2數(shù)組的排序
5.4.3元素的查找
5.4.4數(shù)組的比較
5.4.5填充數(shù)組元素
5.5案例學(xué)習橋牌隨機
發(fā)牌
5.6二維數(shù)組
5.6.1二維數(shù)組的定義
5.6.2數(shù)組元素的使用
5.6.3數(shù)組初始化器
5.6.4實例矩陣乘法
5.6.5不規(guī)則二維數(shù)組
5.7案例學(xué)習打印輸出魔
方數(shù)
5.8小結(jié)
編程練習
第6章字符串類
6.1String類及基本操作
6.1.1創(chuàng)建String類對象
6.1.2字符串基本操作
6.1.3String對象的不變性
6.1.4字符串比較
6.1.5字符串的查找和
匹配
6.1.6字符串的拆分與
組合
6.1.7字符串轉(zhuǎn)換為數(shù)組
6.2文本塊
6.3命令行參數(shù)
6.4格式化數(shù)據(jù)
6.5StringBuilder類
6.5.1創(chuàng)建StringBuilder
對象
6.5.2StringBuilder類常用
操作
6.5.3 運算符的重載
6.6案例學(xué)習判定回
文串
6.7案例學(xué)習字符串加密、
解密
6.8小結(jié)
編程練習
第7章面向?qū)ο筇卣?/p>
7.1面向?qū)ο蟮娜筇卣?/p>
7.2包、類庫與模塊
7.2.1包與package語句
7.2.2類的導(dǎo)入
7.2.3Java類庫
7.2.4Java模塊系統(tǒng)
7.3封裝性與訪問權(quán)限
7.3.1類的訪問權(quán)限
7.3.2類成員的訪問權(quán)限
7.4類的繼承
7.4.1類繼承的實現(xiàn)
7.4.2方法覆蓋
7.4.3super關(guān)鍵字
7.4.4調(diào)用父類的構(gòu)造方法
7.5final關(guān)鍵字
7.5.1final修飾類
7.5.2final修飾方法
7.5.3final修飾變量
7.6抽象類
7.7對象轉(zhuǎn)換與多態(tài)性
7.7.1對象轉(zhuǎn)換
7.7.2instanceof運算符
7.7.3多態(tài)與動態(tài)綁定
7.8案例學(xué)習自定義類庫的
開發(fā)
7.9小結(jié)
編程練習
第8章Java核心類庫
8.1java.lang.Object類
8.1.1toString()方法
8.1.2equals()方法
8.1.3hashCode()方法
8.1.4clone()方法
8.2java.lang.Math類
8.3java.lang.System類
8.4基本類型包裝類
8.4.1Character 類
8.4.2Boolean類
8.4.3創(chuàng)建數(shù)值類對象
8.4.4數(shù)值類的常量
8.4.5自動裝箱與自動拆箱
8.4.6字符串與基本類型
轉(zhuǎn)換
8.5案例學(xué)習一個整數(shù)棧的
實現(xiàn)
8.6BigInteger類和BigDecimal
類
8.7日期和時間API
8.7.1LocalDate本地
日期類
8.7.2LocalTime本地
時間類
8.7.3LocalDateTime本地日期
和時間類
8.7.4Instant類、Duration類
和Period類
8.7.5其他常用類
8.7.6日期和時間API的解析
和格式化
8.8案例學(xué)習打印輸出
年歷
8.9小結(jié)
編程練習
第9章接口與內(nèi)部類
9.1接口
9.1.1接口的定義
9.1.2常量
9.1.3接口的實現(xiàn)
9.1.4接口的繼承
9.1.5接口類型的使用
9.2接口的非抽象方法
9.2.1靜態(tài)方法
9.2.2默認方法
9.2.3私有方法
9.2.4解決默認方法沖突
9.3內(nèi)部類
9.3.1成員內(nèi)部類
9.3.2靜態(tài)內(nèi)部類
9.3.3匿名內(nèi)部類
9.3.4局部內(nèi)部類
9.4接口示例
9.4.1ComparableT
接口
9.4.2ComparatorT
接口
9.5案例學(xué)習比較員工對象
大小
9.6小結(jié)
編程練習
第10章異常處理
10.1異常與異常類
10.1.1異常的概念
10.1.2異常類
10.2捕獲異常
10.2.1異常的拋出與
捕獲
10.2.2try…catch…finally
語句
10.3捕獲多個異常
10.4throws短語和throw
語句
10.5try…with…resources
語句
10.6自定義異常類
10.7斷言
10.7.1使用斷言
10.7.2開啟和關(guān)閉斷言
10.7.3何時使用斷言
10.8案例學(xué)習數(shù)組不匹配
異常
10.9小結(jié)
編程練習
第11章記錄、枚舉和注解類型
11.1記錄類型
11.2枚舉類型
11.2.1枚舉類型的定義
11.2.2枚舉類型的方法
11.2.3枚舉在switch語句
中的應(yīng)用
11.2.4枚舉類型的構(gòu)造
方法
11.3注解類型
11.3.1注解概述
11.3.2標準注解
11.3.3定義注解類型
11.3.4標準元注解
11.4小結(jié)
編程練習
第12章泛型與集合
12.1泛型
12.1.1泛型類
12.1.2泛型接口
12.1.3泛型方法
12.1.4通配符(?)的使用
12.1.5有界類型參數(shù)
12.1.6類型擦除
12.2集合框架
12.3List接口及實現(xiàn)類
12.3.1List的操作
12.3.2ArrayList類
12.3.3遍歷集合元素
12.3.4數(shù)組轉(zhuǎn)換為List
對象
12.4Set接口及實現(xiàn)類
12.4.1HashSet類
12.4.2用Set對象實現(xiàn)集合
運算
12.4.3TreeSet類
12.4.4對象順序
12.5Queue接口及實現(xiàn)
類
12.5.1Queue接口和Deque
接口
12.5.2ArrayDeque類和
LinkedList類
12.5.3集合轉(zhuǎn)換
12.6案例學(xué)習用集合存儲、
遍歷員工記錄
12.7Map接口及實現(xiàn)類
12.7.1Map接口
12.7.2HashMap類
12.7.3TreeMap類
12.7.4在Map鍵和值上
迭代
12.7.5Hashtable類和Enu
meration接口
12.8Collections類
12.9案例學(xué)習用Map統(tǒng)計
單詞數(shù)量
12.10小結(jié)
編程練習
第13章輸入/輸出
13.1I/O概述
13.1.1File類應(yīng)用
13.1.2文本I/O與二進制
I/O
13.2二進制I/O流
13.2.1OutputStream類和
InputStream類
13.2.2FileOutputStream類和
FileInputStream類
13.2.3BufferedOutputStream類
和BufferedInputStream
類
13.2.4DataOutputStream類和
DataInputStream類
13.2.5PrintStream類
13.2.6標準輸入/輸出流
13.3案例學(xué)習文件加密、解密
程序
13.4文本I/O流
13.4.1Reader類和Writer類
13.4.2FileWriter類和
FileReader類
13.4.3BufferedReader類和
BufferedWriter類
13.4.4PrintWriter類
13.4.5使用Scanner對象
13.5案例學(xué)習統(tǒng)計文件行數(shù)、
單詞數(shù)和字符數(shù)
13.6對象序列化
13.6.1對象序列化與
對象流
13.6.2向ObjectOutputStream
中寫入對象
13.6.3從ObjectInputStream
中讀取對象
13.6.4序列化數(shù)組
13.7Files類操作
13.7.1Path對象
13.7.2創(chuàng)建和刪除目錄及
文件
13.7.3文件屬性操作
13.7.4文件和目錄的復(fù)制與
移動
13.7.5獲取目錄的對象
13.7.6小文件的讀寫
13.7.7使用Files類創(chuàng)建流
對象
13.8小結(jié)
編程練習
第14章函數(shù)式編程
14.1Lambda表達式
14.1.1從匿名類到Lambda
表達式
14.1.2Lambda表達式
語法
14.1.3函數(shù)式接口
14.2預(yù)定義函數(shù)式接口
14.2.1ConsumerT
接口
14.2.2SupplierT
接口
14.2.3PredicateT
接口
14.2.4FunctionT,R
接口
14.3方法引用和構(gòu)造方法
引用
14.3.1方法引用
14.3.2構(gòu)造方法引用
14.4Stream API
14.4.1流概述
14.4.2創(chuàng)建與獲得流
14.4.3連接流和限制流
14.4.4過濾流
14.4.5流轉(zhuǎn)換
14.4.6流歸約
14.4.7收集結(jié)果
14.4.8基本類型流
14.4.9并行流
14.5案例學(xué)習用Stream統(tǒng)計
員工的平均年齡
14.6案例學(xué)習用Stream計算
多個數(shù)的斐波那契數(shù)
14.7小結(jié)
編程練習
第15章JavaFX圖形界面
15.1JavaFX概述
15.1.1Java GUI編程
簡史
15.1.2添加JavaFX軟
件包
15.1.3JavaFX的主要
功能
15.2JavaFX程序基本結(jié)構(gòu)
15.2.1舞臺和場景
15.2.2場景圖和節(jié)點
15.2.3Application類生命周期
方法
15.2.4JavaFX程序啟動
15.3JavaFX屬性與綁定
15.3.1JavaFX屬性
15.3.2屬性綁定
15.4JavaFX界面布局
15.4.1JavaFX坐標系
15.4.2Pane面板
15.4.3HBox面板
15.4.4VBox面板
15.4.5BorderPane面板
15.4.6FlowPane面板
15.4.7GridPane面板
15.4.8StackPane面板
15.4.9使用CSS設(shè)置控件
樣式
15.5Color類和Font類
15.5.1Color類
15.5.2Font類
15.6JavaFX形狀
15.6.1Line類
15.6.2Rectangle類
15.6.3Circle類
15.6.4Ellipse類
15.6.5Arc類
15.6.6Polygon類
15.6.7Text類
15.7Image類和ImageView
類
15.8特效實現(xiàn)
15.8.1陰影效果
15.8.2模糊效果
15.8.3倒影效果
15.8.4發(fā)光效果
15.9案例學(xué)習考試成績
分布圖
15.10小結(jié)
編程練習
第16章事件處理與常用控件
16.1事件處理
16.1.1事件處理模型
16.1.2事件類和事件
類型
16.1.3使用事件處理器
16.1.4動作事件
16.1.5鼠標事件
16.1.6鍵盤事件
16.1.7為屬性添加監(jiān)
聽器
16.2常用控件
16.2.1Label類
16.2.2Button類
16.2.3TextField類和
PasswordField類
16.2.4TextArea類
16.2.5CheckBox類
16.2.6RadioButton類
16.2.7ComboBox類
16.2.8Slider類
16.2.9菜單設(shè)計
16.2.10FileChooser類
16.3案例學(xué)習一個猜數(shù)
游戲
16.4音頻和視頻
16.5動畫
16.5.1過渡動畫
16.5.2淡出效果
16.5.3移動效果
16.5.4縮放效果
16.5.5旋轉(zhuǎn)效果
16.5.6時間軸動畫
16.6案例學(xué)習升國旗
奏國歌
16.7小結(jié)
編程練習
第17章JDBC數(shù)據(jù)庫編程
17.1數(shù)據(jù)庫簡介
17.1.1關(guān)系數(shù)據(jù)庫簡述
17.1.2數(shù)據(jù)庫語言SQL
17.2JDBC體系結(jié)構(gòu)
17.2.1JDBC訪問數(shù)據(jù)庫
17.2.2JDBC API
17.3數(shù)據(jù)庫訪問步驟
17.3.1加載驅(qū)動程序
17.3.2建立連接對象
17.3.3創(chuàng)建語句對象
17.3.4執(zhí)行語句獲得執(zhí)行
結(jié)果
17.3.5關(guān)閉有關(guān)對象
17.4使用PreparedStatement
對象
17.4.1創(chuàng)建PreparedStatement
對象
17.4.2帶參數(shù)的SQL
語句
17.5創(chuàng)建和訪問 MySQL
數(shù)據(jù)庫
17.5.1創(chuàng)建數(shù)據(jù)庫和表
17.5.2訪問MySQL
數(shù)據(jù)庫
17.6案例學(xué)習使用數(shù)據(jù)源
連接數(shù)據(jù)庫
17.7DAO設(shè)計模式
17.8可滾動和可更新的
ResultSet
17.8.1可滾動的ResultSet
17.8.2可更新的ResultSet
17.9案例學(xué)習數(shù)據(jù)庫存取
圖像數(shù)據(jù)
17.10小結(jié)
編程練習
第18章并發(fā)編程基礎(chǔ)
18.1Java多線程
18.2創(chuàng)建任務(wù)和線程
18.2.1實現(xiàn)Runnable
接口
18.2.2繼承Thread類
18.2.3主線程與守護
線程
18.3線程的狀態(tài)與調(diào)度
18.3.1線程的狀態(tài)
18.3.2線程的優(yōu)先級和
調(diào)度
18.3.3控制線程的結(jié)束
18.4線程同步與對象鎖
18.4.1線程沖突與原子
操作
18.4.2方法同步
18.4.3塊同步
18.5線程協(xié)調(diào)
18.5.1不正確的設(shè)計
18.5.2監(jiān)視器模型
18.6并發(fā)工具
18.6.1原子變量
18.6.2Executor和
ExecutorService
18.6.3Callable和
Future
18.6.4使用Lock鎖定
對象
18.7案例學(xué)習百米飛人
大戰(zhàn)
18.8小結(jié)
編程練習
第19章Java網(wǎng)絡(luò)編程
19.1網(wǎng)絡(luò)編程概述
19.1.1網(wǎng)絡(luò)分層與協(xié)議
19.1.2客戶服務(wù)器結(jié)構(gòu)
19.1.3IP地址和域名
19.1.4端口號與套接字
19.2基于TCP的通信
19.2.1基于TCP和UDP通信
的對比
19.2.2ServerSocket類和
Socket類
19.2.3簡單的TCP通信的
例子
19.3基于UDP的通信
19.3.1DatagramSocket類和
DatagramPacket類
19.3.2簡單的UDP通信
例子
19.4基于HTTP的通信
19.4.1理解HTTP
19.4.2URL和URL類
19.4.3URLConnection類
19.5案例學(xué)習訪問Web
應(yīng)用程序
19.6小結(jié)
編程練習
附錄A綜合案例
案例1英文字母隨機漫步
案例2八皇后問題
案例3簡單的日歷程序
案例4簡易計算器
案例5簡單的五子棋游戲
案例6簡單的Web服務(wù)器
參考文獻