本書從Java初學者的角度出發(fā),用通俗易懂的語言、貼近實際生活的實例,詳細地介紹使用Java語言進行程序開發(fā)須掌握的知識和技術,幫助讀者快速掌握Java程序開發(fā)的技能。全書共14章,分別為Java程序設計入門、Java語言基礎、流程控制、方法與數(shù)組、面向對象基礎、深入面向對象、常用類、異常、集合類、File與I/O流、多線程、圖形用戶界面、網絡編程、反射。隨書電子資源中還提供了綜合項目實訓,以鞏固所學知識,培養(yǎng)讀者的項目開發(fā)能力。
與該作者編寫的Java Web、SSM、SSH形成Java開發(fā)系列。
內容上比傳統(tǒng)教材增加了類似多線程、反射和網絡編程的內容,方便教師自由裁剪,也有利于學有余力的學生自學。
使用了新版本JDK12作為基礎版本來講解。
每章有習題和上機練習,方便教師布置作業(yè)并檢驗學習效果。配套資源較為豐富。
李西明,教育、研究背景方面: 1992.9-1996.7山東工業(yè)大學,自動化系,獲工學學士學位; 2002.9-2005.7暨南大學信息學院,電子系,獲工學碩士學位; 2007.9-2011.6華南農業(yè)大學,信息學院,獲工學博士學位; 2012.3-2013.8 以色列國本·古里安大學自然科學學院,獲得以色列政府杰出博士后研究者項目資助,博士后研究。 2014.6-2014.7 以色列國本固里安大學,獲得本固里安大學資助,訪問學者。 工作方面: 1996/07 -- 2002/09,聊城師范學院通信工程系,助教。 2005/07 ?C 2015/06 華南農業(yè)大學現(xiàn)代教育技術中心,工程師、高級工程師。主要負責學校數(shù)字化校園規(guī)劃、建設和維護等工作,歷任信息技術部副部長、部長等職 2015/07 至今 華南農業(yè)大學數(shù)學與信息學院計算機系計算機網絡教研室高級工程師。主講《Java程序設計》等本科及研究生課程。 主持、參與十余項國家、省部級項目。
第 1章 Java程序設計入門 1
1.1 Java概述 1
1.1.1 Java語言簡介 1
1.1.2 Java語言的優(yōu)點 2
1.1.3 Java的版本 2
1.2 搭建Java開發(fā)環(huán)境 3
1.2.1 JDK與跨平臺 3
1.2.3 JDK14的下載 4
1.3 第 一個Java程序 4
1.3.1 HelloWorld程序的編寫 4
1.3.2 HelloWorld程序的編譯與運行 5
1.3.3 HelloWorld程序的運行機制 7
1.3.4 HelloWorld程序的糾錯 7
1.4 環(huán)境變量的配置 9
1.5 集成開發(fā)工具Eclipse 12
1.5.1 Eclipse簡介 12
1.5.2 使用Eclipse開發(fā)HelloWorld項目 13
1.6 輸出語句 16
1.6.1 輸出換行 16
1.6.2 輸出制表位 16
1.6.3 輸出其他轉義字符 18
1.7 上機實驗 19
任務一:輸出愛心形狀 19
任務二:制作主菜單界面 19
第 2章 Java語言基礎 22
2.1 基本語法 22
2.1.1 編碼格式 22
2.1.2 注釋 23
2.1.3 標識符 25
2.1.4 關鍵字 25
2.2 變量與常量 26
2.2.1 變量簡介 26
2.2.2 變量的聲明 26
2.2.3 數(shù)據類型 27
2.2.4 變量的賦值 30
2.2.5 數(shù)據類型轉換 31
2.2.6 變量的使用 32
2.2.7 變量的作用域 33
2.2.8 常量 34
2.3 運算符 34
2.3.1 賦值運算符 34
2.3.2 算術運算符 35
2.3.3 比較運算符 39
2.3.4 邏輯運算符 40
2.3.5 位運算符 42
2.3.6 三元運算 46
2.3.7 運算符的優(yōu)先級 47
2.3.8 接收鍵盤錄入數(shù)據 48
2.4 上機實驗 49
任務一:奇偶判斷 49
任務二:變量值交換 50
任務三:判斷閏年 50
第3章 流程控制 52
3.1 流程控制分類 52
3.2 if條件語句 52
3.3 switch條件語句 57
3.4 循環(huán)結構語句 62
3.4.1 for循環(huán)語句 62
3.4.2 while循環(huán)語句 66
3.4.3 do…while循環(huán)語句 68
3.4.4 無限循環(huán) 70
3.4.5 跳轉語句break與continue 71
3.4.6 二重循環(huán) 74
3.5 上機實驗 76
任務一:生肖屬相 76
任務二:班級成績統(tǒng)計 76
任務三:斐波那契數(shù)列 76
任務四:烏龜爬坡 77
第4章 方法與數(shù)組 80
4.1 方法 80
4.1.1 方法的定義 80
4.1.2 方法的調用 81
4.1.3 方法的重載 84
4.1.4 方法的遞歸 85
4.2 一維數(shù)組 86
4.2.1 數(shù)組概述 86
4.2.2 數(shù)組的聲明 86
4.2.3 數(shù)組的初始化 87
4.2.4 數(shù)組的異常 92
4.2.5 數(shù)組的使用 92
4.2.6 冒泡排序 95
4.2.7 直接選擇排序 96
4.2.8 插入排序 98
4.2.9 數(shù)組的逆序 99
4.2.10 Arrays工具類 100
4.3 二維數(shù)組 102
4.3.1 二維數(shù)組的聲明與初始化 102
4.3.2 二維數(shù)組的使用 104
4.4 上機實驗 105
任務一:學生成績統(tǒng)計 105
任務二:子公司銷售額統(tǒng)計 105
第5章 面向對象基礎 108
5.1 面向對象編程簡介 108
5.2 類與對象 108
5.2.1 類的定義 108
5.2.2 成員變量 109
5.2.3 成員方法 109
5.2.4 對象的創(chuàng)建 110
5.2.5 局部變量 112
5.2.6 訪問對象的屬性和方法 113
5.2.7 對象的比較 113
5.3 構造方法 114
5.3.1 構造方法的定義 114
5.3.2 構造方法的重載 116
5.4 封裝 118
5.5 this關鍵字 119
5.6 static關鍵字 121
5.6.1 靜態(tài)變量 121
5.6.2 靜態(tài)方法 123
5.6.3 靜態(tài)代碼塊 124
5.7 值傳遞與引用傳遞 125
5.8 對象數(shù)組 126
5.9 垃圾回收機制 127
5.10 上機實驗 128
任務:汽車銷售統(tǒng)計 128
第6章 深入面向對象 131
6.1 繼承 131
6.1.1 繼承的實現(xiàn) 131
6.1.2 方法的重寫 134
6.1.3 super關鍵字 135
6.1.4 final關鍵字 138
6.2 抽象類與接口 139
6.2.1 抽象類 139
6.2.2 接口 141
6.3 多態(tài) 143
6.3.1 多態(tài)簡介 143
6.3.2 使用繼承實現(xiàn)多態(tài) 144
6.3.3 使用接口實現(xiàn)多態(tài) 145
6.3.4 向上轉型 146
6.2.5 向下轉型 148
6.3 權限修飾符 150
6.4 上機實驗 152
任務:模擬主人養(yǎng)寵物 152
第7章 常用類 154
7.1 Object類 154
7.1.1 Object類的hashCode()方法 154
7.1.2 Object類的getClass()方法 155
7.1.3 Object類的toString()方法 155
7.1.4 Object類的equals()方法 156
7.1.5 equals與==的區(qū)別 157
7.1.6 hashCode()與equals()方法的重寫 158
7.2 String與StringBuffer類 159
7.2.1 String類 159
7.2.2 StringBuffer類 166
7.3 正則表達式 168
7.3.1 正則表達式簡介 168
7.3.2 正則表達式語法 169
7.3.3 正則表達式的驗證功能 170
7.3.4 正則表達式的分割功能 170
7.3.5 正則表達式的替換功能 171
7.3.6 正則表達式的分組功能 171
7.3.7 正則表達式的獲取功能 173
7.4 包裝類 174
7.5 內部類 176
7.6 數(shù)學類Math 182
7.7 Random類 182
7.8 日期與時間類 183
7.8.1 Date類 184
7.8.2 DateFormat類 185
7.8.3 SimpleDateFormat類 186
7.8.4 Calendar類 187
7.9 System與Runtime類 189
7.10 上機實驗 190
任務一:字符串統(tǒng)計 190
任務二:查找字符串中子字符串出現(xiàn)次數(shù) 190
任務三:系統(tǒng)登錄 190
任務四:獲取文件名與類型 190
第8章 異常 192
8.1異常處理機制及異常分類 192
8.1.1 Java異常處理機制 192
8.1.2 運行時異常與編譯時異!193
8.2 異常處理 194
8.2.1 try…catch處理異!194
8.2.2 try…catch…finally處理異!196
8.3 多種異常的處理 198
8.4 手動拋出異常 199
8.5 自定義異!200
8.6 上機實驗 201
任務:智能開關燈應用 201
第9章 集合類 204
9.1 集合基礎知識 204
9.2 Collection接口的方法簡介 205
9.3 List接口及其實現(xiàn)類 205
9.3.1 List接口簡介 205
9.3.2 ArrayList集合 206
9.3.3 Iterator迭代器 210
9.3.4 foreach循環(huán) 212
9.3.5 LinkedList集合 212
9.4 Set接口及其實現(xiàn)類 214
9.4.1 HashSet集合 214
9.4.2 TreeSet集合 217
9.5 Map接口及其實現(xiàn)類 223
9.5.1 HashMap集合 224
9.5.2 TreeMap集合 227
9.6 泛型 228
9.6.1 泛型方法 228
9.6.2 泛型類 230
9.7 泛型集合 232
9.7.1 ArrayList泛型集合 233
9.7.2 HashSet泛型集合 235
9.7.3 HashMap泛型集合 235
9.8 枚舉類型 237
9.8.1 枚舉類型簡介 237
9.8.2 枚舉類型的應用 237
9.9 上機實驗 241
任務:實現(xiàn)斗地主發(fā)牌 241
第 10章 File與I/O流 243
10.1 File類 243
10.1.1 File對象的創(chuàng)建 244
10.1.2 File對象的常用方法 244
10.2 字節(jié)流 248
10.2.1 字節(jié)輸入流InputStream 249
10.2.2 字節(jié)輸出流OutputStream 250
10.2.3 使用字節(jié)流實現(xiàn)文件復制 253
10.2.4 帶緩沖區(qū)的字節(jié)流 254
10.3 字符流 255
10.3.1 字符編碼 255
10.3.2 字符輸入流Reader 257
10.3.3 字符輸出流Writer 259
10.3.4 帶緩沖區(qū)的字符流 260
10.4 轉換流 261
10.4.1 InputStreamReader 261
10.4.2 OutputStreamWriter 263
10.5 打印流 263
10.6 對象流 264
10.6.1 對象輸出流ObjectOutputStream 264
10.6.2 對象輸入流ObjectInputStream 266
10.6.3 對象的遍歷 268
10.7 上機實驗 269
任務:汽車銷售數(shù)據持久化 269
第 11章 多線程 271
11.1 進程與線程 271
11.2 實現(xiàn)多線程的方式 271
11.2.1 繼承Thread類 271
11.2.2 實現(xiàn)Runnable接口 273
11.2.3 匿名內部類實現(xiàn)多線程 274
11.2.4 主線程與子線程 275
11.3 線程的生命周期與狀態(tài) 276
11.4 操作線程的方法 277
11.4.1 線程的名字 277
11.4.2 線程的優(yōu)先級 279
11.4.3 線程的休眠 280
11.4.4 線程的讓步 283
11.4.5 線程的插隊 284
11.5 線程的同步 286
11.5.1 線程安全問題 286
11.5.2 同步代碼塊 288
11.5.3 同步方法 291
11.5.4 線程安全問題的解決 291
11.5.5 死鎖問題 292
11.6 線程的等待與喚醒 295
11.7 上機實驗 299
任務一:解決同時取錢的線程安全問題 299
任務二:交替打印字母數(shù)字案例 299
第 12章 圖形用戶界面 301
12.1 Swing介紹 301
12.1.1 JFrame窗體組件 301
12.1.2 JDialog對話框組件 302
12.1.3 JOptionPane對話框 304
12.1.4 中間容器JPanel與JscrollPane 307
12.1.5 標簽組件JLabel 308
12.1.6 文本組件JTextField與JTextArea 309
12.1.7 密碼框組件JPasswordField 311
12.1.8 按鈕組件 312
12.1.9 JComboBox下拉列表框組件 317
12.1.10 菜單組件 319
12.1.11 ImageIcon圖標組件 321
12.1.12 文件選擇組件JFileChooser 324
12.2布局管理器 328
12.2.1 流式布局管理器FlowLayout 328
12.2.2 邊界布局管理器BorderLayout 329
12.2.3 網絡布局管理器GridLayout 331
12.2.4 布局 332
12.3 事件處理 333
12.3.1 動作事件 335
12.3.2 鍵盤事件 337
12.3.3 鼠標事件 338
12.3.4 窗體事件 341
12.3.5 選項事件 342
12.3.6 表格模型事件 343
12.4 上機實驗 347
任務:設計游戲界面 347
第 13章 網絡編程 349
13.1 網絡通信協(xié)議 349
13.1.1 IP地址與端口號 350
13.1.2 InetAddress類 350
13.1.3 UDP與TCP網絡協(xié)議 352
13.2 UDP網絡程序設計 353
13.2.1 DatagramPacket 353
13.2.2 DatagramSocket 354
13.2.3 UDP發(fā)送與接收示例程序 355
13.2.4 UDP即時聊天程序 356
13.2.5 圖形界面即時聊天案例 359
13.3 TCP網絡程序設計 363
13.3.1 ServerSocket 363
13.3.2 Socket 363
13.3.3 簡單TCP網絡程序 364
13.3.4 多線程與TCP網絡程序 368
第 14章 反射 372
14.1 反射簡介 372
14.2 反射與Class 類 372
14.3 反射訪問構造方法 374
14.4 反射訪問成員變量 376
14.5 反射訪問成員方法 378