零基礎學Java(第5版)

黃傳祿 常建功 陳浩

  • 出版商: 機械工業
  • 出版日期: 2020-06-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 566
  • 裝訂: 平裝
  • ISBN: 7111654978
  • ISBN-13: 9787111654971
  • 相關分類: Java 相關技術Java 程式語言
  • 立即出貨 (庫存 < 3)

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

相關主題

商品描述

Java是使用面很廣的面向對象的開發語言。
本書站在零基礎學習的角度,通過通俗易懂的語言和豐富多彩的實例,
幫助初學者盡快掌握Java語言程序設計的核心知識點而少走彎路。
本書一共分為四篇,共24章,循序漸進地講述了Java語言的語法規則,
以及Eclipse和MyEclipse開發環境的使用,從基本概念到具體實踐、
從入門知識到高階主題、從語法語義到數據結構和算法都進行了詳細的闡述,
內容主要包括運算符、表達式、分支語句、循環語句、函數、數組、
字符串、類、對象、包、繼承、多態、封裝、枚舉、反射、標註、泛型、
類加載器、動態代理、多線程、文件的操作和訪問、數據的操作、
數據的存儲、Java數據結構、XML文件的創建和解析、數據庫的連接、網絡編程和界面的設計等知識點。
書中的所有知識都結合具體實例進行介紹,涉及的程序代碼都給出了詳細的註釋,
有助於讀者輕鬆領會程序開發的精髓,快速提高開發技能。

作者簡介

黃傳祿

高級講師、管理軟件開發工程師、數據庫庫系統工程師、
信息系統管理工程師。有10多年的一線教學經驗和高端培訓經驗,
出版多部技術專著,獲得多個軟件著作權。
擁有多年的軟件開發和設計經驗,主持開發完成高校學生信息共享平台設計項目、
車聯網項目的設計、國土資源局的觸摸屏項目等,對編程有著豐富的實戰經驗和獨到的見解。

目錄大綱

前言
第一篇 Java語言語法基礎——面向過程知識
第1章 Java技術概覽 1
1.1 Java技術 1
1.1.1 認識Java語言 1
1.1.2 認識Java平台 2
1.1.3 Java語言的功能 3
1.1.4 Java語言的優點 3
1.1.5 Java分佈式應用和多線程的特點 4
1.1.6 Java程序的可靠性、安全性 4
1.2 Windows下的“HelloWorld”應用程序 5
1.2.1 創建應用程序的軟件環境 5
1.2.2 創建“HelloWorld”應用程序的步驟 5
1.3 深入探討“HelloWorld”應用程序 7
1.3.1 註釋源代碼 8
1.3.2 實現類定義 8
1.3.3 詳解main()方法 9
1.4 常見疑難解答 9
1.4.1 環境變量設置錯誤 9
1.4.2 語法錯誤 9
1.4.3 語義錯誤 10
1.4.4 運行時錯誤 10
1.4.5 初學者如何選擇Java參考書 11
1.5 小結 11
1.6 習題 12

第2章 Java開發工具及環境設置 13
2.1 Java開發工具簡介 13
2.1.1 下載並安裝JDK 13
2.1.2 設定環境變量 16
2.1.3 驗證JDK環境是否配置成功 18
2.2 JDK內置工具 18
2.2.1 JDK常用工具 18
2.2.2 JDK常用工具的使用實例 18
2.2.3 Java應用程序的發布工具 20
2.3 一個簡單的Java應用程序 20
2.4 Java程序員的編碼規則 21
2.5 常見疑難解答 23
2.5.1 Java文件擴展名是否區分大小寫 23
2.5.2 Javac xxx.java順利通過,但Java xxx顯示“NoClassDefFoundError” 23
2.5.3 導致錯誤“Exception in thread main java.lang.NoSuchMethodError:main”的原因 23
2.6 小結 24
2.7 習題 24

第3章 Java語言中的數據類型與運算符 25
3.1 數制 25
3.1.1 基本概念 25
3.1.2 Java語言中的數製表現形式 25
3.2 數據類型 26
3.2.1 整型 26
3.2.2 字符型 29
3.2.3 浮點型 29
3.2.4 布爾型 31
3.3 變量 31
3.3.1 變量的聲明 32
3.3.2 變量的含義 32
3.3.3 變量的分類 32
3.4 變量如何初始化 34
3.5 常量 36
3.6 運算符 37
3.6.1 算術運算符 37
3.6.2 關係運算符 41
3.6.3 邏輯運算符 42
3.6.4 位運算符 44
3.6.5 移位運算符 46
3.6.6 賦值運算符 48
3.6.7 三元運算符 49
3.6.8 逗號運算符 49
3.6.9 轉型運算符 49
3.6.10 運算符的優先級別 50
3.7 常見疑難解答 50
3.7.1 如何將十進制轉換成二進制 50
3.7.2 轉型運算符會引起精度問題,為什麼還要使用它 51
3.8 小結 51
3.9 習題 51

第4章 程序設計中的流程控制 52
4.1 編程風格 52
4.2 條件語句 53
4.2.1 簡單條件語句 53
4.2.2 最簡單的條件語句 54
4.2.3 適應多條件的條件語句 55
4.2.4 嵌套條件語句 58
4.2.5 如何使用條件語句 59
4.3 循環語句 59
4.3.1 for循環語句 59
4.3.2 while循環 62
4.3.3 do…while語句 65
4.4 中斷與繼續語句 66
4.4.1 中斷控制語句 66
4.4.2 繼續語句 68
4.5 分支語句 69
4.6 返回語句 72
4.7 常見疑難解答 72
4.7.1 普通循環是使用for語句還是while語句 72
4.7.2 一般的程序可否用分支語句來代替條件語句 73
4.8 小結 73
4.9 習題 73

第二篇 Java語言語法進階——面向對象知識
第5章 數組 75
5.1 數組概念的引入 75
5.1.1 實例的引入 75
5.1.2 數組的概念 75
5.1.3 用實例說明數組的用處 76
5.2 基本數據類型的數組 76
5.2.1 基本類型數組的聲明 77
5.2.2 基本類型數組的初始化 77
5.3 由實例引出不同數組種類及其使用 78
5.3.1 認識一維數組 78
5.3.2 由實例引出一維數組及其使用 78
5.3.3 由實例引出二維數組及其使用 81
5.4 多維數組 82
5.4.1 多維數組的聲明 82
5.4.2 初始化多維數組 83
5.4.3 使用多維數組 83
5.5 數組的綜合實例 84
5.6 常見疑難解答 88
5.6.1 聲明數組需要注意什麼 88
5.6.2 數組在平時的程序代碼中使用是否頻繁 88
5.7 小結 88
5.8 習題 88

第6章 字符串的處理 90
6.1 認識字符串 90
6.1.1 代碼中的字符串 90
6.1.2 String類和StringBuffer類的比較 91
6.2 字符串處理的類庫種類 92
6.2.1 字符串的賦值 92
6.2.2 字符串處理類——String 92
6.2.3 字符串處理的方法 95
6.2.4 緩衝字符串處理類——StringBuffer 102
6.2.5 緩衝字符串StringBuffer類的構造器 102
6.2.6 緩衝字符串的處理 103
6.2.7 緩衝字符串類的特點 107
6.3 用實例演示如何處理字符串 107
6.4 如何格式化輸出字符串 108
6.5 常見疑難解答 109
6.5.1 equals和“==”的區別 109
6.5.2 String類為何被定義成final約束 109
6.5.3 char類型如何轉換成int類型,int類型如何轉換成字符串 109
6.6 小結 109
6.7 習題 110

第7章 類和對象 111
7.1 面向對像開發中的類 111
7.1.1 在Java中類的定義 111
7.1.2 Java中的類與現實世界的類 112
7.2 萬事萬物皆對象 112
7.2.1 什麼是對象 112
7.2.2 操作對象 113
7.2.3 初始化對象 113
7.2.4 對象的成員方法 114
7.2.5 對象的成員變量 119
7.3 對像中訪問控制符的重要性 119
7.3.1 什麼是訪問控制符 119
7.3.2 如何使用訪問控制符及其重要性 121
7.4 Java中的基礎類 123
7.4.1 Java的數學運算處理類Math 123
7.4.2 測試時間和日期的類Date 125
7.4.3 測試日曆的類GregorianCalendar 126
7.4.4 日曆處理的實例解析 127
7.5 用實例分析設計一個類的流程 129
7.5.1 如何在現實程序設計中提取一個類 129
7.5.2 設置器和訪問器 135
7.5.3 總結 137
7.6 常見疑難解答 137
7.6.1 類在程序語言中起到了什麼作用 137
7.6.2 設置器和訪問器的作用 137
7.7 小結 137
7.8 習題 137

第8章 重載和包 138
8.1 重載 138
8.1.1 什麼是重載 138
8.1.2 用實例來說明重載的意義 139
8.2 包 140
8.2.1 什麼是Java中的包 140
8.2.2 如何實現包 140
8.2.3 什麼是類路徑和默認包 142
8.2.4 包的作用域 142
8.2.5 靜態導入 142
8.3 包的註釋及嵌入文檔 144
8.3.1 如何添加註釋 144
8.3.2 類、方法、字段等註釋的方法 144
8.4 常見疑難解答 145
8.4.1 包在實際編程中究竟有什麼作用 145
8.4.2 一個文件中定義了兩個class類是否生成一個.class文件 145
8.5 小結 145
8.6 習題 145

第9章 繼承和多態 147
9.1 什麼是繼承 147
9.1.1 繼承的引出 147
9.1.2 繼承的概念 148
9.1.3 如何實現繼承 149
9.1.4 如何設計繼承 151
9.2 構造函數的使用 151
9.2.1 什麼是構造函數 151
9.2.2 繼承中構造函數的初始化 152
9.2.3 替代父類和本身的方式 153
9.2.4 Java中的單繼承性 154
9.3 繼承中的覆蓋現象 154
9.4 類之間的關係 154
9.4.1 依賴 155
9.4.2 聚合 155
9.4.3 繼承 155
9.5 繼承層次圖 156
9.6 多態 156
9.6.1 多態的產生 156
9.6.2 多態的概念 157
9.6.3 使用多態編寫程序 158
9.6.4 覆蓋的應用 159
9.6.5 重載與覆蓋的實例對比 160
9.6.6 覆蓋的多態性 160
9.6.7 傳值引用和傳址引用 162
9.7 通過實例熟悉多態用法 163
9.8 綁定 165
9.8.1 靜態綁定 165
9.8.2 動態綁定 165
9.9 超類 165
9.9.1 什麼是超類 165
9.9.2 equals方法的使用 166
9.9.3 通用編程 166
9.10 常見疑難解答 166
9.10.1 Java不支持多繼承,如何處理一個類繼承多個父類的情況 166
9.10.2 如果出現了帶參數的構造函數,可否不在代碼中寫出來 167
9.10.3 動態和靜態編譯是什麼 167
9.10.4 綁定與多態的聯繫是什麼 167
9.10.5 多態與重載的區別是什麼 167
9.11 小結 167
9.12 習題 167

第10章 接口與內部類 171
10.1 接口 171
10.1.1 接口概念的引入 171
10.1.2 接口的聲明 172
10.1.3 接口的實現 172
10.1.4 接口的多重實現 177
10.1.5 接口的屬性 182
10.1.6 接口的繼承 182
10.2 內部類 188
10.2.1 使用內部類來訪問對象 188
10.2.2 局部內部類 191
10.2.3 靜態內部類 194
10.2.4 匿名內部類 194
10.3 常見疑難解答 194
10.3.1 匿名類如何在程序中使用 194
10.3.2 接口與繼承有什麼區別 194
10.4 小結 194
10.5 習題 194

第11章 抽象和封裝 196

11.1 抽象的概念 196
11.1.1 什麼是抽象 196
11.1.2 抽象的綜合實例 197
11.2 抽像類 200
11.2.1 什麼是抽像類 200
11.2.2 抽像類的實例 200
11.3 抽象與接口的區別 205
11.4 枚舉 205
11.4.1 關於枚舉的實現原理 205
11.4.2 枚舉的簡單應用 207
11.4.3 關於枚舉的高級特性 208
11.5 反射 210
11.5.1 關於反射的基石——Class類 210
11.5.2 關於反射的基本應用 212
11.5.3 關於反射的高級應用 216
11.6 標註 219
11.6.1 標註的簡單使用 219
11.6.2 關於JDK的內置標註 221
11.7 泛型 223
11.7.1 為什麼要使用泛型 223
11.7.2 關於泛型的一些特性 226
11.7.3 關於泛型的通配符 228
11.8 類加載器 229
11.8.1 什麼是類加載器 230
11.8.2 什麼是類加載器的委派模型 231
11.9 動態代理 232
11.9.1 什麼是代理 232
11.9.2 關於動態代理基礎類 233
11.9.3 關於InvocationHandler接口 237
11.9.4 動態代理類的設計模式 240
11.10 封裝的概念 242
11.10.1 一個封裝的例子 242
11.10.2 在程序設計中為什麼要使用封裝 244
11.10.3 在程序設計中設計封裝的注意點 246
11.11 結合實例講述如何設計封裝 246
11.12 常見疑難解答 251
11.12.1 抽像類和接口在概念上有什麼區別 251
11.12.2 如何從設計理念上看待抽像類和接口 251
11.12.3 封裝在現實開發中給程序員帶來什麼啟發 253
11.12.4 封裝在實際開發中的應用有哪些 254
11.13 小結 254
11.14 習題 255

第三篇 Java語言編程主題
第12章 線程 257
12.1 線程的基本概念 257
12.1.1 進程及其使用環境 257
12.1.2 線程及其使用環境 257
12.2 線程的創建 258
12.2.1 如何創建線程 258
12.2.2 通過實例熟悉如何創建線程 261
12.2.3 線程的狀態 264
12.3 線程的使用 266
12.3.1 線程的優先級 266
12.3.2 線程的休眠與喚醒 267
12.3.3 線程讓步 271
12.3.4 線程同步 272
12.3.5 同步塊 274
12.3.6 同步化方法 277
12.4 實例分析 278
12.4.1 生產者與消費者的程序設計及分析 278
12.4.2 多消費者的程序設計及分析 280
12.4.3 多生產者的程序設計及分析 283
12.5 常見疑難解答 288
12.5.1 Java中線程與線程之間怎麼通信 288
12.5.2 什麼是進程的死鎖和飢餓 288
12.5.3 什麼時候會涉及線程程序 289
12.5.4 多線程的死鎖問題 289
12.5.5 多線程的缺點 290
12.6 小結 290
12.7 習題 290

第13章 異常的處理與內存的管理 292
13.1 異常的概念 292
13.1.1 異常的分類 292
13.1.2 異常的聲明 293
13.1.3 異常的拋出throw 294
13.2 異常的捕獲 295
13.2.1 捕獲多個異常 296
13.2.2 自定義異常 298
13.2.3 運行期異常 299
13.2.4 執行finally子句 300
13.2.5 finally子句的必要性 301
13.3 內存的管理和回收 303
13.4 常見疑難解答 304
13.4.1 為什麼要聲明方法拋出異常 304
13.4.2 為什麼拋出的異常一定是檢查異常 304
13.5 小結 305
13.6 習題 305

第14章 Java輸入與輸出 306
14.1 輸入與輸出的重要性 306
14.2 Java重要的輸入輸出類 306
14.3 文件或目錄信息的處理 307
14.3.1 File類常用的操作方法 307
14.3.2 文件處理方法的應用 308
14.3.3 文件和目錄的操作 308
14.4 讀取數據的媒介之一——流 310
14.4.1 什麼是流 311
14.4.2 什麼是輸入流和輸出流 311
14.4.3 字節輸入流及輸出流 311
14.4.4 使用文件字節輸入流讀取文件 312
14.4.5 使用文件字節輸出流輸出文件 313
14.5 多字節數據讀取類——Filter類 315
14.5.1 Filter流的概念 315
14.5.2 處理字節類型以外的文件輸入 315
14.5.3 處理字節類型以外的文件輸出 316
14.5.4 增強的多字節輸出流DataOutput 316
14.5.5 增強的多字節輸入流DataInput 317
14.6 讀取數據的媒介之二——字符流 320
14.6.1 字符流的概念 320
14.6.2 抽象字符輸入流Reader類的使用 320
14.6.3 抽象字符輸出流Writer類的使用 321
14.6.4 讀取帶緩存的BufferedReader字符流 321
14.6.5 帶緩存的字符輸出流BufferedWriter類 322
14.6.6 字符輸入流FileReader類和FileWriter類的使用 325
14.6.7 如何用標準輸入流System.in來獲取數據 326
14.6.8 打印輸入流PrintWriter類與PrintStream類的區別 327
14.6.9 隨機文件訪問RandomAccessFile類 329
14.7 利用對象序列化控制輸入輸出 331
14.7.1 什麼是對象序列化 331
14.7.2 基本數據和對像數據讀寫ObjectInput接口與ObjectOutput接口 332
14.7.3 對象序列化處理ObjectOutputStream類 332
14.7.4 對象序列化處理ObjectInputStream類 333
14.8 常見疑難解答 333
14.8.1 字節流與字符流的主要區別 333
14.8.2 輸入流與輸出流如何區分,各有什麼作用 334
14.8.3 什麼是管道流 334
14.9 小結 335
14.10 習題 335

第15章 Java中對數據的處理 336
15.1 如何將基本數據類型轉換為對象 336
15.1.1 為什麼要將基本數據轉換為對象 336
15.1.2 Wrapper類的構造函數 337
15.1.3 包裝類的常用函數 338
15.1.4 基本數據的拆裝箱操作 339
15.2 如何處理隨機性的數據 341
15.2.1 Random類的基礎知識 341
15.2.2 通過實例熟悉Random類的常用方法 342
15.3 如何對數據進行排列、整理 345
15.3.1 Arrays類的常用方法 345
15.3.2 實例分析 347
15.4 常見疑難解答 350
15.4.1 Random類函數在現實生活中有什麼用處 350
15.4.2 數組的排列和整理數據在實際應用中有什麼用處 350
15.5 小結 351
15.6 習題 351

第16章 數據結構接口 352
16.1 數據結構接口及實現 352
16.1.1 數據結構接口的實質 352
16.1.2 用實例來熟悉數據結構接口的實現 353
16.2 Collection集合接口與Iterator迭代器接口 354
16.2.1 熟悉Collection集合接口 354
16.2.2 List接口和Set接口 355
16.2.3 Map映射接口 356
16.2.4 Iterator迭代器接口 357
16.2.5 通過實例來認識迭代器的實現 358
16.3 常見疑難解答 360
16.3.1 Collection集合接口和Collections集合類的區別 360
16.3.2 ArrayList數組列表類和Vector存儲類的區別 360
16.3.3 HashMap散列映射和Hashtable散列表的區別 360
16.3.4 數據結構的種類有哪些 360
16.3.5 List接口和Set接口的區別 360
16.4 小結 361
16.5 習題 361

第17章 Java中的數據結構 362
17.1 鍊錶 362
17.1.1 什麼是Java中的鍊錶 362
17.1.2 用程序代碼段實現對鍊錶的添加 363
17.1.3 用程序代碼段實現對鍊錶的刪除 365
17.2 數組列表類 369
17.2.1 什麼是數組列表類 369
17.2.2 通過實例熟悉數組列表如何存儲數據 370
17.3 散列表 374
17.3.1 什麼是散列表 374
17.3.2 通過實例熟悉散列表如何存儲數據 374
17.4 散列集 378
17.4.1 什麼是散列集 378
17.4.2 通過實例熟悉散列集如何存儲數據 378
17.5 樹集 383
17.5.1 什麼是樹集 383
17.5.2 通過實例熟悉樹集如何存儲數據 384
17.6 映像 387
17.6.1 什麼是映像 387
17.6.2 通過實例熟悉映像如何存儲數據 387
17.7 常見疑難解答 391
17.7.1 哪些是線程安全的數據結構 391
17.7.2 Vector是什麼樣的數據結構 391
17.8 小結 392
17.9 習題 392

第18章 XML基礎 393
18.1 XML和HTML 393
18.1.1 XML的產生 393
18.1.2 XML與HTML的比較 394
18.2 XML的編輯工具 395
18.3 創建XML文檔 395
18.3.1 XML的聲明 396
18.3.2 文檔類型的聲明 396
18.3.3 元素 397
18.3.4 註釋 398
18.3.5 處理指令 398
18.3.6 空白處理 398
18.3.7 行尾處理 399
18.3.8 語言標識 399
18.3.9 一個簡單的有關XML的實例 399
18.4 關於XML的高級知識 400
18.4.1 什麼才是格式良好的XML文檔 400
18.4.2 DTD文檔的作用 401
18.4.3 DTD的結構 401
18.4.4 幾個有關DTD的簡單實例 403
18.5 關於XML文檔的操作 405
18.5.1 下載Dom4J組件 405
18.5.2 配置Dom4J組件 406
18.5.3 Dom4J組件的簡單使用——解析XML文件 406
18.5.4 Dom4J組件的簡單使用——創建XML文件 409
18.6 關於XML文檔的高級操作 411
18.6.1 下載Sax類庫 411
18.6.2 配置Sax組件 412
18.6.3 Sax組件的簡單使用——解析XML文件 412
18.7 常見疑難解答 415
18.7.1 XML與HTML的區別 415
18.7.2 XML有哪些顯示數據的方式 415
18.8 小結 416
18.9 習題 416

第19章 開發工具的使用 417
19.1 Eclipse簡介 417
19.1.1 下載並安裝Eclipse 418
19.1.2 Eclipse界面介紹 419
19.2 如何使用Eclipse進行開發 422
19.2.1 如何新建一個Java工程 422
19.2.2 如何新建一個Java類 424
19.2.3 編寫代碼 425
19.3 如何使用MyEclipse進行開發 426
19.3.1 下載並安裝MyEclipse 427
19.3.2 關於MyEclipse的一些常用操作 428
19.4 常見疑難解答 431
19.4.1 Eclipse和UltraEdit兩個開發工具的優缺點 431
19.4.2 什麼是IDE環境 431
19.4.3 有關Eclipse的編譯報錯的原因 431
19.5 小結 431
19.6 習題 432

第20章 Swing組件與佈局管理器 433
20.1 什麼是Swing編程 433
20.2 MVC設計模式基礎 433
20.3 簡單框架設計及實例 434
20.3.1 創建一個空白的框架 434
20.3.2 創建框架的其他工作 435
20.4 簡單圖形按鈕控件的設計及實例 436
20.4.1 Swing中的按鈕控件 436
20.4.2 按鈕的模型 437
20.4.3 添加普通按鈕 437
20.4.4 添加單選按鈕 438
20.4.5 添加複選框 440
20.4.6 ToggleButton按鈕 441
20.5 簡單文本輸入組件的設計及實例 442
20.5.1 文本域 442
20.5.2 密碼域 443
20.5.3 文本區域 444
20.6 展示類組件的設計及實例 445
20.6.1 標籤組件 445
20.6.2 選擇組件 446
20.6.3 菜單組件 447
20.6.4 對話框的種類及用法 448
20.7 複雜佈局管理器的種類及用法 449
20.7.1 箱式佈局的設計 450
20.7.2 網格組佈局的設計 452
20.7.3 流佈局的設計 452
20.7.4 邊界佈局的設計 454
20.8 通過實例熟悉Swing編程 455
20.9 常見疑難解答 457
20.9.1 如何處理菜單的啟用和禁用功能 457
20.9.2 如何編寫快捷鍵的程序 458
20.10 小結 458
20.11 習題 458

第21章 JDBC及其應用 459
21.1 數據庫基礎知識 459
21.1.1 什麼是數據庫 459
21.1.2 數據庫的分類及功能 460
21.1.3 關係數據庫的設計 460
21.1.4 數據庫設計技巧 461
21.2 JDBC的基礎概念 462
21.2.1 JDBC驅動程序的分類 462
21.2.2 利用Java到數據庫協議方式連接Oracle數據庫 463
21.2.3 利用Java到本地API方式連接Oracle數據庫 464
21.3 關於SQL Server數據庫基礎操作 466
21.3.1 什麼是支持SQL語言的數據庫 466
21.3.2 通過SQL語言如何操作數據庫 467
21.3.3 安裝SQL Server 468
21.3.4 高級SQL類型 469
21.3.5 使用SQL創建數據庫 470
21.4 關於JDBC的高級操作 477
21.4.1 什麼是事務處理 477
21.4.2 事務處理的過程演練 477
21.4.3 預查詢 480
21.4.4 使用JDBC的注意事項 480
21.5 常見疑難解答 481
21.5.1 操作數據庫的具體步驟是什麼 481
21.5.2 數據庫中的視圖、圖表、缺省值、規則、觸發器、存儲過程的意義 482
21.6 小結 482
21.7 習題 482

第22章 網絡編程基礎 484
22.1 網絡基礎知識 484
22.2 TCP/IP協議和UDP協議 484
22.2.1 IP協議和IP地址 485
22.2.2 TCP協議和端口 487
22.2.3 客戶端/服務器通信模型 487
22.2.4 UDP協議 488
22.3 端口與套接字 489
22.4 TCP程序設計基礎 489
22.4.1 如何設計TCP程序 490
22.4.2 一個簡單的例子 492
22.5 UDP程序設計基礎 493
22.5.1 如何設計UDP程序 493
22.5.2 一個簡單的例子 493
22.6 如何設計網絡程序 494
22.6.1 單向通信綜合實例 495
22.6.2 雙向通信綜合實例 497
22.7 常見疑難解答 500
22.7.1 TCP和UDP的區別 500
22.7.2 什麼是TCP/IP協議,分為幾層,什麼功能 501
22.8 小結 502
22.9 習題 502

第四篇 Java語言程序設計實例與面試題剖析
第23章 學校管理系統 503
23.1 開發背景 503
23.2 需求分析 503
23.3 登錄界面的設計 504
23.3.1 登錄界面的分析 504
23.3.2 登錄界面的代碼實現 504
23.3.3 登錄界面的運行 506
23.4 主菜單界面的設計 507
23.4.1 主菜單界面的分析 507
23.4.2 主菜單界面的代碼實現 507
23.4.3 主菜單界面的運行 515
23.5 數據庫系統的設計 516
23.5.1 數據庫中表的創建 516
23.5.2 數據庫中的代碼段 519
23.6 學生信息系統界面的設計 520
23.6.1 學生類的設計 520
23.6.2 存儲類的設計 521
23.6.3 學生信息系統界面的代碼實現 523
23.7 教師信息系統界面的設計 531
23.7.1 教師類的設計 531
23.7.2 存儲類的設計 533
23.7.3 教師信息系統界面的代碼實現 535
23.8 領導信息系統界面的設計 543
23.8.1 領導類的設計 543
23.8.2 存儲類的設計 544
23.8.3 領導信息系統界面的代碼實現 545
23.9 小結 553
第24章 面試題 554
面試題1 Java的引用和C++的指針有什麼區別 554
面試題2 類和對像有什麼區別 555
面試題3 說明private、protected、public和default的區別 556
面試題4 Java可以用非0來代表true嗎 557
面試題5 StringBuffer和StringBuilder存在的作用是什麼 557
面試題6 二維數組的長度是否固定 558
面試題7 符合什麼條件的數據集合可以使用foreach循環 559
面試題8 如何序列化和反序列化一個Java對象 560
面試題9 如何使用Java的線程池 561
面試題10 如何利用反射實例化一個類 561
面試題11 TCP協議的通信特點是什麼 561
面試題12 請簡述JDBC操作數據庫的編程步驟 561
面試題13 如何使用連接池技術 561
面試題14 簡述接口和抽像類的區別 562
面試題15 如何理解Java中的裝箱和拆箱 562
面試題16 根據代碼判斷創建的對像個數 563
面試題17 分析循環程序的運行結果 563
面試題18 可以返回zuida值的方法 564
面試題19 關於垃圾回收的疑問 564
面試題20 線程問題:找出代碼中的錯誤 565
面試題21 關於ArrayList、Vector、LinkedList的問答題 565
面試題22 Java中的異常處理機制的簡單原理和應用 566
面試題23 列舉一些常用的類、包、接口,請各列舉5個 566
面試題24 Java 中,DOM 和 SAX 解析器有什麼不同 566
面試題25 線程的sleep()方法和yield()方法有什麼區別 566