內容簡介
Java語言的學習是套用Java技術進行工程實踐的基礎。本書站在工程開發的角度,結合教學過程,循序漸進地安排了各章的內容,全書將一個經過簡化的銀行存取款系統分散在各章給予實現,讀者可以在讀完全書之後對Java程式設計有一個完整的認識。全書分為三個部分16章,分別講授了Java的基本語法和常用算法的練習,Java面向對象程式設計以及在I/O、多執行緒、網路、資料庫和GUI編程方面的套用。全書結構合理,內容全面,反映了Java最新技術的發展,同時注重引入Java技術在實踐中的套用,能夠為讀者學習Java的其他技術奠定良好的技術基礎。本書可作為高等學校計算機或相關專業本科生的教材,也可在縮減部分教學內容後作為高職高專的Java程式設計課程的教材。
圖書目錄
第一部分 Java基礎
第1章 Java概述3
1.1 Java技術簡介3
1.1.1 Java發展歷史3
1.1.2 Java技術的構成4
1.1.3 為什麼選擇Java5
1.2 JDK安裝及配置6
1.2.1 安裝Java開發工具包6
1.2.2 配置JDK8
1.3 Java應用程式10
1.3.1 簡單的程式HelloWorldApp.java10
1.3.2 編寫Java應用程式需要注意的幾個規則11
1.3.3 編譯和運行12
1.3.4 排除常見的錯誤12
1.4 Java的工作原理14
1.4.1 Java運行環境14
1.4.2 Java應用程式執行過程15
1.4.3 Java虛擬機17
1.4.4 自動垃圾收集19
1.5 程式注釋19
1.6 常用開發環境20
小結21
習題22
第2章 類型、變數和表達式23
2.1 一個計算圓面積的程式23
2.2 變數24
2.2.1 標識符24
2.2.2 Java關鍵字25
2.2.3 基本Java類型25
2.2.4 變數聲明26
2.2.5 變數初始化28
2.2.6 轉義字元29
2.2.7 常量29
2.3運算符和表達式30
2.3.1運算符30
2.3.2算術表達式31
2.3.3關係和邏輯表達式34
2.3.4移位和位操作運算37
2.3.5賦值運算符39
2.3.6其他運算符40
2.3.7數學函式40
2.3.8字元運算40
2.3.9類型轉換41
2.4字元串43
2.4.1字元串常量43
2.4.2字元串對象43
2.4.3字元串運算43
2.5基於文本的輸入輸出45
2.5.1控制台的輸入45
2.5.2字元界面的輸出47
小結49
習題51
第3章流程控制52
3.1句、塊和空白52
3.1.1語句52
3.1.2語句塊53
3.1.3空白54
3.2順序結構55
3.3選擇結構56
3.3.1if…else語句56
3.3.2switch語句60
3.4循環結構62
3.4.1for循環62
3.4.2while循環64
3.4.3do循環65
3.4.4跳轉66
3.5嵌套的結構68
3.6變數的作用域69
3.7程式調試和排錯70
3.7.1利用斷言調試程式70
3.7.2常見排錯方法71
小結73
習題74
第4章數組76
4.1數組76
4.1.1數組型變數的聲明76
4.1.2為數組分配空間77
4.1.3初始化數組78
4.1.4訪問數組的元素78
4.1.5使用增強型循環訪問數組元素79
4.2main方法中的參數80
4.3多維數組81
4.4運算元組83
小結84
習題85
第5章算法設計基礎86
5.1求解素數86
5.2查找87
5.2.1順序查找87
5.2.2折半查找88
5.3排序90
5.3.1插入排序法91
5.3.2冒泡排序法92
5.3.3選擇排序94
5.4遞歸96
小結99
習題99
第二部分Java的面向對象編程
第6章類和對象103
6.1面向對象概述103
6.1.1面向對象的基本概念103
6.1.2類和對象104
6.2使用JDK的類104
6.3創建自己的類106
6.3.1類的結構106
6.3.2聲明一個自定義類108
6.3.3為類添加成員變數110
6.3.4為類添加方法113
6.3.5方法重載118
6.3.6構造方法119
6.4對象121
6.4.1創建對象122
6.4.2對象的生存周期123
6.4.3this125
6.4.4實例運算符的作用127
6.4.5對象特性及對象間的關係127
6.5static131
6.5.1static代碼塊(類初始化)131
6.5.2static成員變數(共享數據)131
6.5.3static方法(共享操作)133
6.5.4static載入134
6.6包134
小結136
習題137
第7章繼承和接口139
7.1類的層次結構139
7.2創建現有類的子類140
7.2.1繼承140
7.2.2使用super訪問超類的構造方法143
7.2.3覆蓋和隱藏143
7.3Object類、抽象類、final類144
7.3.1Object144
7.3.2抽象類148
7.3.3final類149
7.4接口150
7.4.1定義接口150
7.4.2實現接口151
7.4.3用接口定義變數153
7.5抽象類和接口154
7.6類型系統156
7.6.1動態和靜態類型156
7.6.2多態性156
7.6.3類型轉換158
小結158
習題160
第8章泛型、枚舉和內部類163
8.1泛型163
8.1.1聲明泛型類163
8.1.2聲明泛型接口166
8.1.3聲明泛型方法167
8.1.4泛型參數的限定167
8.2枚舉169
8.3內部類171
8.3.1內部類的聲明和套用171
8.3.2具有static修飾的內部類172
8.3.3局部內部類173
8.3.4匿名內部類173
小結175
習題176
第9章異常控制177
9.1異常177
9.1.1異常分類體系178
9.1.2Java程式中的常見異常179
9.2異常處理181
9.2.1捕獲異常181
9.2.2多異常情況下的catch183
9.2.3捕獲所有異常184
9.2.4finally語句184
9.3自定義異常185
9.3.1定義一個檢測異常185
9.3.2定義一個非檢測異常186
9.4方法聲明拋出異常186
9.4.1方法聲明中的異常187
9.4.2運行時環境拋出異常187
9.4.3開發人員編碼在程式中拋出異常188
9.4.4多異常拋出190
9.4.5覆蓋繼承自父類的方法時的異常問題190
9.5異常處理的基本規則190
9.5.1捕獲及聲明異常191
9.5.2finally和return的關係192
9.5.3需要注意的其他問題192
小結193
習題194
第10章集合196
10.1集合框架196
10.1.1集合類196
10.1.2集合的接口198
10.2列表List200
10.2.1List的主要方法200
10.2.2List疊代器ListIterator201
10.2.3ArrayList201
10.2.4Vector203
10.3佇列Queue205
10.3.1LinkedList205
10.3.2LinkedBlockingQueue208
10.4集209
10.5映射211
10.6構建有序集合215
10.6.1利用Comparable接口實現有序列表215
10.6.2利用Comparator接口實現有序集合216
小結218
習題219
第11章精通常用類編程220
11.1System220
11.2String與StringBuffer221
11.2.1字元串常量222
11.2.2字元串變數222
11.2.3字元串運算222
11.2.4構造格式化字元串224
11.2.5StringBuffer225
11.3日期處理226
11.3.1獲得日期對象226
11.3.2創建一個日曆對象--Calendar227
11.3.3Date和Calendar的轉換228
11.3.4修改日曆屬性228
11.3.5格式化輸出及日期型字元串解析229
11.4正則表達式231
11.4.1一個例子231
11.4.2字元集232
11.4.3查找和替換235
11.5Observable對象和Observer對象237
11.6數值的包裝類239
11.7生成隨機數240
11.8反射與代理241
11.8.1Class和反射241
11.8.2對象代理245
小結248
習題250
第12章基本I/O處理252
12.1流252
12.1.1什麼是流252
12.1.2流的分類253
12.1.3輸入流的基本方法254
12.1.4輸出流的基本方法255
12.2字元流和位元組流256
12.3結點流257
12.4流的處理鏈258
12.4.1過濾器流259
12.4.2轉換流259
12.4.3數據輸入和輸出流260
12.4.4緩衝流262
12.4.5列印輸出流262
12.4.6如何利用流編寫程式263
12.5檔案處理263
12.5.1File264
12.5.2順序讀寫檔案268
12.5.3隨機讀寫檔案271
12.6對象串列化274
12.6.1什麼是串列化274
12.6.2可串列化的對象274
12.6.3對象的串列化存取275
12.6.4串列化的問題277
12.7I/O的異常處理279
小結279
習題280
第13章多執行緒開發281
13.1理解執行緒281
13.2創建執行緒282
13.2.1從Thread派生執行緒類282
13.2.2實現Runnable接口創建執行緒目標類283
13.2.3定義執行緒執行的任務284
13.2.4創建執行緒實例並執行284
13.3失控的執行緒285
13.4執行緒間的同步和互斥291
13.4.1互斥對象的訪問291
13.4.2互斥方法的訪問292
13.4.3執行緒間的同步293
13.4.4執行緒的死鎖問題296
13.5執行緒的狀態與轉換296
13.6執行緒的管理300
13.6.1執行緒的優先權300
13.6.2執行緒的中斷301
13.6.3守護執行緒和用戶執行緒302
13.6.4執行緒組303
小結305
習題307
第14章網路編程308
14.1網路基礎308
14.1.1網路基本概念308
14.1.2TCP和UDP協定309
14.2網路編程常用類310
14.3基於TCP的網路編程313
14.3.1基於Socket的客戶/伺服器模型313
14.3.2創建伺服器端Socket313
14.3.3創建客戶端Socket316
14.3.4創建一個多執行緒通信伺服器317
14.3.5客戶/伺服器通信過程319
14.3.6Socket連線的關閉323
14.3.7Socket異常323
14.4對象的網路傳輸325
14.5基於UDP的網路編程328
14.5.1數據包Datagram328
14.5.2基於UDP的客戶/伺服器通信過程331
14.6基於URL的網路編程332
14.6.1URL基礎332
14.6.2資源訪問技術333
小結334
習題335
第15章資料庫訪問336
15.1資料庫編程基礎336
15.1.1什麼是JDBC336
15.1.2JDBC驅動程式類型337
15.1.3安裝JDBC驅動程式338
15.2連線到資料庫338
15.3使用Statement訪問資料庫342
15.3.1獲得Statement342
15.3.2使用Statement對象執行SQL語句343
15.3.3語句完成345
15.4ResultSet346
15.4.1行和游標347
15.4.2獲取列的值347
15.4.3插入新行349
15.4.4更新列值350
15.4.5刪除記錄行351
15.4.6特殊欄位類型的處理351
15.5PreparedStatement354
15.6CallableStatement355
15.7事務357
15.8數據源和連線池361
小結362
習題364
第16章用戶界面開發365
16.1簡介365
16.1.1從AWT到Swing365
16.1.2模型-視圖-控制體系366
16.1.3創建第一個Swing視窗366
16.2容器和基本組件368
16.2.1設計主視窗369
16.2.2添加組件到視窗370
16.2.3組件的基本功能371
16.2.4按鈕JButton372
16.2.5標籤JLabel372
16.2.6文本組件373
16.2.7選擇性輸入組件374
16.2.8列表JList375
16.2.9表格JTable378
16.2.10添加選單到視窗383
16.3布局管理器384
16.3.1BorderLayout384
16.3.2FlowLayout385
16.3.3BoxLayout386
16.3.4GridLayout387
16.4用中間容器組織界面元素387
16.5事件機制389
16.5.1事件處理過程389
16.5.2主要事件類型391
16.5.3一個事件處理的實例393
16.6對話框395
16.6.1選項對話框395
16.6.2檔案對話框396
16.6.3自定義對話框396
16.7圖形編程基礎398
小結400
習題402
附錄AJava常用命令解析403
參考文獻407