內容簡介
全書共11章,循序漸進地介紹了Java語言概述、Java程式設計基礎、Java中的對象與類、集合、數組與字元串、Java Applet、圖形用戶界面編程、Java輸入輸出與資料庫操作、網路程式設計和異常處理。
本書可作為普通高等院校Java程式設計類課程的教材使用,也可供Java初學人員,或者是已經具備一定基礎的Java程式設計師閱讀參考。
編輯推薦
《Java程式設計教程》:作為1995年由Sun公司組織開發的一種程式語言,Java是一種純面向對象的語言,具有高度的可移植和安全性,具備簡單性、跨平台、面向對象、多執行緒等諸多特點,已經成為當今業界面向對象程式設計的主流、採用Java作為程式設計課程的編程平台,可以有效克服C/C++所帶來的教學難點。因此,越來越多的高校開始將Java作為程式設計課程的主線。
詳解Java基礎,從零起步學習Java程式設計
豐富實例套用,通過案例講解程式開發方法
突出實踐操作,各章上機指導培養動手能力
目錄
第1章 Java語言概述 1
1.1 Java的發展歷程 1
1.2 Java語言的基本特點 1
1.3 Java虛擬機 3
1.4 Java開發工具箱 3
1.4.1 下載與安裝Java開發工具包(JDK) 4
1.4.2 JDK目錄 6
1.4.3 設定環境變數 7
1.5 學會使用API 8
1.6 常見IDE介紹 10
1.6.1 JCreator軟體 10
1.6.2 JBuilder軟體 11
1.6.3 Eclipse軟體 11
1.7 第一個Java程式 12
1.7.1 開發原始碼 12
1.7.2 編譯運行 13
小結 13
習題 14
上機指導 14
實驗:運算並顯示某一算式的運算結果 14
第2章 Java程式設計基礎 15
2.1 Java中的關鍵字與標識符的命名規則 15
2.2 Java的基本數據類型 16
2.2.1 boolean類型 18
2.2.2 byte、short、int和long類型 18
2.2.3 float和double類型 20
2.3 封裝類型 21
2.3.1 封裝類型概述 21
2.3.2 創建封裝類對象 21
2.4 Java操作符 23
2.4.1 算術運算符 23
2.4.2 自增自減運算 27
2.4.3 關係運算 29
2.4.4 邏輯運算 30
2.4.5 三元運算符 32
2.4.6 位運算 34
2.4.7 移位運算 35
2.4.8 賦值運算 35
2.4.9 括弧及運算符間的優先權關係 37
2.5 Java中變數的賦值與類型轉換 37
2.5.1 基本類型轉換 38
2.5.2 強制類型轉換 38
2.6 Java中的控制語句 39
2.6.1 分支語句 39
2.6.2 循環語句 42
2.6.3 流程跳轉語句 45
2.7 斷言 46
2.7.1 斷言的概念 47
2.7.2 如何啟用/關閉斷言 48
2.7.3 防止濫用斷言 50
小結 51
習題 51
上機指導 51
實驗一:不同類型數據間的運算 51
實驗二:多重for循環繪製圖形 52
實驗三:使用switch語句實現條件分支 53
第3章 Java中的對象與類 54
3.1 面向對象概述 54
3.2 類的定義與對象的創建 55
3.3 包的使用 55
3.3.1 聲明創建包 56
3.3.2 引入包內的資源 58
3.4 類的成員變數和方法 60
3.4.1 訪問修飾符 61
3.4.2 成員變數 61
3.4.3 成員變數的初始值 62
3.4.4 方法 66
3.4.5 構造方法 67
3.4.6 參數的傳遞 68
3.5 抽象類與接口 69
3.5.1 抽象類與抽象方法 69
3.5.2 接口 72
3.6 final關鍵字 74
3.7 類的繼承 75
3.7.1 如何定義子類 76
3.7.2 方法的覆蓋 78
3.7.3 this與super關鍵字 80
3.7.4 繼承的層次結構 81
3.8 static關鍵字 82
小結 86
習題 87
上機指導 88
實驗一:對象引用型成員變數的使用 88
實驗二:含有返回值的方法的使用 89
實驗三:使用對象模擬“商店客戶折扣卡”功能 90
第4章 集合 93
4.1 列表(List) 94
4.1.1 列表接口 95
4.1.2 列表的數組實現 96
4.1.3 向量 98
4.1.4 列表的連結實現 99
4.1.5 將數組轉換為列表 100
4.2 集合(Set) 101
4.2.1 Set接口及含義 101
4.2.2 HashSet類的使用 102
4.2.3 LinkedHashSet類的使用 103
4.2.4 SortedSet接口與TreeSet類 104
4.2.5 自定義滿足Sorted集合的類 106
4.2.6 定製SortedSet的排序規則 109
4.2.7 集合的遍歷 110
4.3 映射(Map) 113
4.3.1 Map接口及含義 114
4.3.2 HashMap類的使用 114
4.3.3 Hashtable類的使用 116
4.3.4 LinkedHashMap類的使用 116
4.3.5 SortedMap接口與TreeMap類 117
4.3.6 映射的遍歷 119
小結 121
習題 121
上機指導 122
實驗:使用疊代器完成遍歷 122
第5章 數組與字元串 124
5.1 數組的聲明與創建 124
5.1.1 聲明數組引用 124
5.1.2 創建數組對象 125
5.2 Java中數組的實現機制 126
5.3 數組的初始化 128
5.3.1 默認初始化 128
5.3.2 利用循環初始化 129
5.3.3 枚舉初始化 130
5.4 數組的相互賦值 131
5.4.1 基本類型數組賦值規則 131
5.4.2 引用類型數組賦值規則 132
5.5 數組的基本操作 133
5.5.1 數組複製 133
5.5.2 數組排序 135
5.5.3 搜尋指定元素 135
5.5.4 比較數組中的元素 136
5.6 關於args[] 136
5.7 String類 137
5.7.1 對象的創建 138
5.7.2 巧用構造器 138
5.7.3 String類的重要方法 139
5.7.4 String的記憶體機制 141
5.8 StringBuffer類 145
5.8.1 彌補String不足的StringBuffer類 145
5.8.2 編寫方法鏈以及StringBuffer類的重要方法 146
5.9 正則表達式 147
5.9.1 正則表達式的基本語法 148
5.9.2 Pattern類簡介 150
5.9.3 Matcher類簡介 151
5.9.4 Pattern與Matcher類的綜合套用 151
5.9.5 利用正則表達式進行查找替換 153
小結 154
習題 154
上機指導 155
實驗一:編寫數組複製的程式 155
實驗二:改變String對象引用的指向 156
第6章 Java Applet 157
6.1 Applet概述 157
6.1.1 Applet的基本工作原理 157
6.1.2 如何在網頁中嵌入Applet 157
6.1.3 Applet的安全性 159
6.2 Applet的基本方法 159
6.3 向Applet傳遞參數 161
6.4 Applet綜合示例 162
6.4.1 示例——使用Applet顯示當前日期及時間 163
6.4.2 示例——使用Applet實現計算器功能 164
6.4.3 示例——使用Applet來處理聲音檔案 167
6.4.4 示例——使用Applet顯示圖像 168
小結 170
習題 170
上機指導 171
實驗一:Applet簡單使用 171
實驗二:在Applet中使用BorderLayout 172
實驗三:Java Applet中使用字型列表顯示各種字型 173
第7章 圖形用戶界面編程 175
7.1 Swing和AWT的對比 175
7.1.1 Swing與AWT之間的關係 175
7.1.2 Swing與AWT的控制項的混用建議 176
7.2 一個簡單的圖形用戶界面程式 177
7.3 容器類 179
7.3.1 頂級容器概述 179
7.3.2 JFrame主視窗 179
7.3.3 JDialog對話框視窗 180
7.3.4 JPanel面板的使用 180
7.4 布局管理器 180
7.4.1 布局管理器的概述 180
7.4.2 框線布局BorderLayout 181
7.4.3 流動布局FlowLayout 182
7.4.4 卡片布局CardLayout 182
7.4.5 格線布局GridLayout 182
7.4.6 使用絕對定位 183
7.5 Java事件處理機制 184
7.5.1 事件處理模型 185
7.5.2 為組件註冊事件 185
7.6 常見的事件處理 186
7.6.1 滑鼠事件 186
7.6.2 滑鼠移動事件 188
7.6.3 選項事件 189
7.6.4 視窗事件 189
7.6.5 鍵盤事件 189
7.7 Swing組件 191
7.7.1 按鈕 192
7.7.2 文本組件 192
7.7.3 單選按鈕JRadioButton 195
7.7.4 複選框JCheckBox 195
7.7.5 下拉列表JComboBox 196
7.7.6 滑塊JSlider 197
7.7.7 進度條JProgressBar及Timer組件 197
7.7.8 選單JMenu概述 199
7.7.9 工具列JToolBar 199
7.8 一個綜合的Swing組件示例 200
小結 202
習題 203
上機指導 203
實驗一:組合使用文本區與滾動視窗 203
實驗二:使用滑塊與進度條 205
實驗三:檔案、顏色對話框綜合案例 207
第8章 Java輸入輸出與資料庫操作 209
8.1 流概述 209
8.1.1 流的定義 209
8.1.2 輸入輸出類結構 209
8.2 一個讀取檔案的簡單實例 211
8.3 檔案類(File)的使用 212
8.3.1 獲取指定檔案的描述信息 213
8.3.2 創建新檔案 214
8.3.3 檔案改名及檔案刪除 215
8.3.4 獲取指定檔案目錄下的所有檔案 216
8.4 讀取檔案 217
8.4.1 示例——讀取檔案並顯示 217
8.4.2 讀取檔案的分類及所涉及的類 219
8.5 寫入檔案 220
8.5.1 示例——將輸入的文本保存到檔案 220
8.5.2 寫入檔案的分類及所涉及的類 222
8.5.3 寫入檔案Writer類的基本方法 222
8.6 隨機訪問檔案 222
8.6.1 RandomAccessFile類的構造及內部方法 223
8.6.2 示例——使用隨機訪問檔案流來對檔案進行讀寫 224
8.7 創建壓縮檔案 225
8.7.1 ZipFile檔案壓縮類概述 225
8.7.2 實現數據檔案Zip方式的壓縮方法 226
8.7.3 將.class檔案打包成jar檔案 229
8.8 資料庫操作 229
8.8.1 使用JDBC連線資料庫 229
8.8.2 執行SQL語句 235
小結 238
習題 238
上機指導 239
實驗一:管理目錄檔案 239
實驗二:學習使用位元組流 240
實驗三:利用JDBC連線資料庫 241
第9章 多執行緒——Java中的並發協作 244
9.1 執行緒的基本知識 244
9.1.1 多執行緒編程的意義 244
9.1.2 定義自己的執行緒 245
9.1.3 創建執行緒對象 246
9.1.4 啟動執行緒 247
9.1.5 同時使用多個執行緒 249
9.2 執行緒的狀態 251
9.3 執行緒的調度 252
9.3.1 睡眠 252
9.3.2 執行緒的優先權 253
9.3.3 執行緒的讓步 253
9.3.4 守護執行緒 254
9.4 執行緒的同步 254
9.4.1 同步方法簡介 255
9.4.2 簡單使用同步方法 255
9.4.3 執行緒同步調度的方法 258
9.4.4 同步的語句塊 258
9.4.5 執行緒的死鎖 259
9.5 進程同步經典示例 261
9.5.1 “生產者-消費者”案例的框架 262
9.5.2 “生產者-消費者”案例的實際運行 265
9.5.3 notify方法的使用 266
9.6 volatile關鍵字的含義與使用 268
小結 269
習題 269
上機指導 270
實驗一:Sleep方法的學習使用 270
實驗二:利用執行緒同步實現生產者與消費者模式 272
實驗三:執行緒的優先權 275
第10章 網路程式設計 277
10.1 網路通信概述 277
10.1.1 什麼是網路通信 277
10.1.2 網路協定基礎 277
10.1.3 Java中所涉及到的網路套用類 278
10.2 一個簡單的網路編程實例 278
10.3 使用URL類 280
10.3.1 URL類中常用的方法 280
10.3.2 使用URLConnetion類 281
10.4 使用InetAddress類獲取IP位址信息 283
10.5 使用套接字Socket類 285
10.5.1 Socket類與ServerSocket類 285
10.5.2 建立與伺服器的連線 286
10.6 使用套接字Datagram類 291
10.6.1 Datagram(數據報)套接字 291
10.6.2 使用Datagram實現數據傳輸 292
10.7 網路程式經典示例——聊天室程式 294
10.7.1 聊天室基本原理 294
10.7.2 客戶端程式 294
10.7.3 伺服器端程式 298
小結 305
習題 305
上機指導 306
實驗一:使用URL標識網路中計算機上的資源 306
實驗二:列印主機對應IP位址的InetAddress對象的主機名及地址 307
實驗三:使用Socket編寫C/S架構程式 307
第11章 異常處理 310
11.1 異常處理的基本知識 310
11.1.1 try和catch捕獲異常 310
11.1.2 異常的傳播過程 313
11.1.3 finally語句塊的使用 315
11.2 異常的層次結構 317
11.2.1 捕獲異常 318
11.2.2 未捕獲異常 320
11.3 再次拋出異常 321
11.3.1 什麼是異常的再拋出 321
11.3.2 顯性再拋出 322
11.3.3 隱性再拋出 324
11.4 定義自己的異常 326
11.4.1 創建自己的異常類 326
11.4.2 使用自定義的異常類 327
11.5 異常的匹配 329
11.5.1 同時捕獲多種異常 330
11.5.2 多個catch語句的先後順序 331
小結 332
習題 332
上機指導 334
實驗一:finally語句的使用 334
實驗二:創建自己的異常類 335
實驗三:匹配異常 335