Java程序設計基礎教程(慕課版)
劉剛 劉偉
相關主題
商品描述
本書通過大量案例詳細講解了Java程序設計的基礎知識,共12章,內容包括:Java基礎知識,基本類型及運算符,控制執行流程,字符串,面向對象,集合和數組,文件及流,日期和時間,反射、異常及枚舉,並發編程,網絡編程及綜合實訓——簡易網上自助銀行系統。本書運用圖、文、視頻配合講解,淺顯易懂,代碼註釋詳細,配全套慕課視頻,資源豐富,貼近行業應用。
本書適合作為本科、高職高專、培訓班Java基礎課程的教材,也可供讀者自學使用。
作者簡介
刘刚,一线项目研发、设计、管理工程师,高级项目管理师、项目监理师,负责纪检监察廉政监督监管平台、国家邮政局项目、政务大数据等多个国家级项目的设计与开发。
极客学院、北风网金牌讲师。
畅销书《微信小程序开发图解案例教程(附精讲视频)》《小程序实战视频课:微信小程序开发全案精讲》《Axure RP8原型设计图解微课视频教程 (Web+App)》作者。
全部案例源代码、素材、最终文件、电子教案可登录人邮教育社区(www.ryjiaoyu.com.cn)下载使用。
目錄大綱
第 1章 Java基礎知識 1
1.1 Java簡介 2
1.1.1 Java的誕生及發展歷程 2
1.1.2 Java的語言特點 2
1.2 Java開發環境搭建 3
1.2.1 JDK、JRE與JVM 3
1.2.2 系統環境變量配置 4
1.3 Java開發工具的使用 11
1.3.1 Java比較流行的編輯工具簡介 12
1.3.2 Eclipse的安裝及使用 13
1.4 動手任務:使用Eclipse編寫Hello World程序 14
1.5 動手任務:創建一個Java項目 18
1.6 本章小結 18
第 2章 基本數據類型及運算符 20
2.1 基本數據類型 21
2.1.1 基本數據類型分類 21
2.1.2 基本數據類型的拆裝箱 22
案例2-1 常量和變量 23
案例2-2 基本數據類型的拆裝箱 23
案例2-3 獲取基本數據類型的範圍值 24
案例2-4 包裝類的轉換方法 25
2.1.3 拓展:Integer的parse()和valueOf()使用 25
2.2 運算符 26
2.2.1 算術運算符 26
案例2-5 加減運算 27
案例2-6 乘除法運算 28
案例2-7 取餘運算 28
案例2-8 自增自減 29
2.2.2 關系運算符和邏輯運算符 29
案例2-9 邏輯與運算與邏輯或運算 31
2.2.3 賦值運算符與條件運算符 32
2.2.4 運算符的優先級 33
案例2-10 二目運算求值順序 34
2.3 動手任務:IP地址轉換程序設計 35
2.4 本章小結 37
第3章 控制執行流程 38
3.1 選擇結構語句 39
3.1.1 if條件語句 39
案例3-1 if-else初探 39
案例3-2 if-else嵌套語句 40
3.1.2 switch條件語句 40
案例3-3 switch實現阿拉伯數字轉中文大寫數字 41
案例3-4 當前月份距元旦天數 41
3.2 循環結構語句 42
3.2.1 while循環語句 42
案例3-5 循環輸出1~10 42
3.2.2 do-while循環語句 43
案例3-6 while和do-while 43
3.2.3 for循環語句 44
案例3-7 for循環的使用 44
案例3-8 多變量for語句 45
3.2.4 break與continue 45
案例3-9 break和continue 45
3.3 動手任務:冒泡排序 46
案例3-10 數組冒泡排序 47
3.4 本章小結 48
第4章 字符串 49
4.1 String類及其常用API 50
案例4-1 字符串的初始化 50
4.1.1 字符串常量池 51
案例4-2 字符串不同創建方式耗時比較 51
4.1.2 字符串常用API 52
案例4-3 字符串非空判斷與長度返回 53
案例4-4 字符串的查詢操作 54
案例4-5 字符串的修改操作 55
案例4-6 字符串的分割操作 56
案例4-7 字符串的比較操作 57
4.1.3 拓展:不變的字符串 57
4.2 StringBuffer類 59
4.2.1 StringBuffer的應用 59
案例4-8 StringBuffer的字符串拼接插入 59
案例4-9 StringBuffer的常用操作方法 60
4.2.2 StringBuilder與StringBuffer的比較 61
案例4-10 StringBuilder的常用方法 61
4.3 常用的JavaAPI 62
4.3.1 System類 62
案例4-11 系統環境變量 62
案例4-12 系統當前時間 63
案例4-13 數組拷貝 64
4.3.2 Random類與Math類 64
案例4-14 Random隨機生成隨機數 64
案例4-15 數學類 66
4.4 動手任務:猜數字游戲 66
案例4-16 Scanner初識 67
案例4-17 猜數字游戲 68
4.5 本章小結 69
第5章 面向對象 70
5.1 面向對象概念 71
5.2 類的概念 72
5.2.1 什麽是類 72
5.2.2 類的使用 72
案例5-1 類的聲明 73
案例5-2 類的使用 74
案例5-3 方法調用及返回值 75
5.3 封裝 76
案例5-4 方法封裝 76
案例5-5 屬性封裝 77
5.4 繼承 79
案例5-6 魚的繼承 80
案例5-7 抽象類的定義和使用 83
案例5-8 接口的使用 84
5.5 多態 86
5.5.1 多態的概念 86
5.5.2 重寫與重載 87
案例5-9 方法的重載 87
案例5-10 方法的重寫 88
5.5.3 內部類 89
案例5-11 內部類的創建及使用 89
案例5-12 嵌入類 91
案例5-13 內部成員類 92
案例5-14 本地類 93
案例5-15 內部類的相互訪問 94
5.5.4 拓展:Object類 97
5.6 動手任務:多態的強大——間諜的變身技能 97
5.7 本章小結 100
第6章 集合和數組 102
6.1 集合初探 103
6.1.1 Collection 103
6.1.2 Map集合 104
案例6-1 Map的使用 104
案例6-2 HashMap及TreeMap的使用 106
6.1.3 List鏈表 107
案例6-3 順序表 108
案例6-4 鏈表操作 111
6.1.4 Set集合 112
案例6-5 計算出現的次數 112
6.2 集合的遍歷 113
6.2.1 Iterator接口 113
案例6-6 集合的迭代 113
6.2.2 增強型for循環 115
案例6-7 增強型for循環 115
6.3 動手任務:三人鬥地主——洗牌發牌程序 116
6.4 數組 119
6.4.1 數組的定義及初始化 120
6.4.2 數組的使用 120
案例6-8 一維數組的使用 120
案例6-9 二維數組 122
6.5 動手任務: 數組排序 122
6.6 本章小結 125
第7章 文件及流 126
7.1 File類 127
7.1.1 File的常用API 127
案例7-1 文件的創建 127
案例7-2 文件的固有屬性 128
案例7-3 文件的可變屬性 129
7.1.2 目錄文件遍歷 130
案例7-4 獲取子文件列表和目錄 130
案例7-5 獲取目錄下的所有文本文件並打印輸出 131
案例7-6 刪除文件夾 132
7.2 輸入輸出流 133
7.2.1 輸入輸出流概念 134
7.2.2 字節流 134
案例7-7 文件輸入輸出流 135
案例7-8 文件的復制 137
案例7-9 RandomAccessFile操作文件 138
7.2.3 字符流 139
案例7-10 使用緩存字符流讀取和寫入數據 139
7.3 動手任務:文件系統 140
7.4 本章小結 146
第8章 日期和時間 147
8.1 Date類 148
8.1.1 電腦的時間 148
案例8-1 當前時間與電腦元年 148
8.1.2 Date類的應用 148
案例8-2 Date類的使用 149
8.2 Calendar類 149
8.2.1 什麽是日歷類型 149
8.2.2 日歷類型的計算 149
案例8-3 日期的計算 149
案例8-4 萬年歷 151
8.3 動手任務:超市過期提醒及促銷活動 152
8.4 本章小結 153
第9章 反射、異常及枚舉 154
9.1 反射 155
9.1.1 什麽是反射 155
案例9-1 類型自動識別 155
案例9-2 利用Class創建類對象 156
案例9-3 通過類名獲取類信息 157
案例9-4 instanceof獲取類型信息 158
案例9-5 Java的String類的反射 159
9.1.2 反射的應用 160
案例9-6 獲取類的構造方法 160
案例9-7 使用反射創建一個類的
對象 161
案例9-8 獲取類中的成員屬性 162
案例9-9 改變成員變量的值 163
案例9-10 獲取類的方法 164
案例9-11 執行類的方法 165
9.2 異常 167
9.2.1 概念 167
9.2.2 基本異常 168
案例9-12 數組下標越界異常 168
案例9-13 異常的捕獲順序 168
案例9-14 finally語句塊 169
案例9-15 異常拋出 170
9.2.3 自定義異常 171
案例9-16 自定義異常 171
9.2.4 拓展:Error及Runtime
Exception 172
9.3 枚舉 172
案例9-17 枚舉的簡單使用 173
案例9-18 向enum中添加新方法 173
案例9-19 Enum實現接口 174
9.4 動手任務:復制對象屬性 175
9.5 本章小結 179
第 10章 並發編程 181
10.1 線程與進程 182
10.2 線程的創建 182
10.2.1 繼承Thread類 182
案例10-1 Thread實現多線程 184
案例10-2 Thread的部分方法使用 185
案例10-3 start方法和run方法 185
10.2.2 實現Runnable接口 187
案例10-4 Runnable實現多線程 187
10.3 線程的調度 187
10.3.1 線程的生命周期 187
10.3.2 線程的優先級 188
案例10-5 線程優先級 188
10.3.3 線程插隊 189
案例10-6 線程插隊 190
10.3.4 線程休眠 191
案例10-7 線程休眠 191
10.3.5 同步與互斥 193
案例10-8 異步接水 193
案例10-9 同步接水 194
案例10-10 線程互斥的計數器 195
案例10-11 生產者-消費者模型 195
10.3.6 死鎖問題 197
案例10-12 線程死鎖 198
10.4 多線程 199
10.4.1 線程池技術 199
案例10-13 緩存線程池 199
案例10-14 計劃任務線程池 200
10.4.2 Callable和Future 200
案例10-15 Callable的用法 201
案例10-16 Future的用法 201
10.5 動手任務:多線程獲取文件大小 202
10.6 本章小結 205
第 11章 網絡編程 206
11.1 網絡通信協議 207
11.1.1 TCP及UDP協議 207
案例11-1 URL和URLConnection的使用 207
11.1.2 IP地址及埠號 208
案例11-2 IP類的使用 208
11.2 TCP通信 209
11.2.1 Socket 209
11.2.2 ServerSocket 209
案例11-3 端到端通信 210
11.3 UDP通信 211
11.3.1 DatagramPacket 211
11.3.2 DatagramSocket 212
案例11-4 UDP通信模型 213
11.4 動手任務:通信程序設計(對點聊天室) 214
11.5 本章小結 218
第 12章 綜合實訓——簡易網上自助銀行系統 219
12.1 JDBC 220
12.1.1 JDBC的概念 220
12.1.2 JDBC通用API 221
案例12-1 DriverManager的使用 222
案例12-2 Statement的使用 224
案例12-3 PreparedStatement和ResultSet的使用 226
12.2 日誌 228
12.3 測試 228
12.3.1 JUnit簡介 228
12.3.2 功能測試及斷言 229
案例12-4 簡單的JUnit測試案例 229
案例12-5 JUnit的註解 230
12.4 事務 232
案例12-6 本地事務 233
12.5 簡易網上銀行系統 238
12.5.1 基礎項目搭建 238
12.5.2 賬戶註冊及登錄 255
12.5.3 轉賬功能(事務) 260
12.6 本章小結 264