本書是Java入門書籍,適合初學(xué)者使用。全書共13章,第1章主要講解Java的特點(diǎn)與發(fā)展史、JDK的使用、Java程序的編寫與運(yùn)行機(jī)制、Java開發(fā)環(huán)境的搭建等;第2~6章主要講解Java編程基礎(chǔ)知識,包括Java基本語法、面向?qū)ο、Java API和集合;第7~12章主要講解Java進(jìn)階知識,包括I/O、多線程、網(wǎng)絡(luò)編程、JDBC、GUI、Java反射機(jī)制;第13章帶領(lǐng)讀者開發(fā)一個綜合項(xiàng)目——基于Java Swing的圖書管理系統(tǒng),讀者能夠融會貫通所學(xué)知識,并了解實(shí)際項(xiàng)目開發(fā)流程。
本書附有配套視頻、源代碼、題庫、教學(xué)課件等資源,并提供了在線答疑,希望幫助讀者更好地學(xué)習(xí)。
本書可作為高等教育本、?圃盒S嬎銠C(jī)相關(guān)專業(yè)的教材,也可作為編程愛好者的參考書。
1.黑馬程序員系列教材改版。
2.本書在保留了原有風(fēng)格的基礎(chǔ)上,內(nèi)容做了大量更新,包括采用**的IntelliJ IDEA開發(fā)工具,在GUI知識章節(jié)重點(diǎn)介紹輕量級的Java Swing組件,新增了反射的相關(guān)知識,新增了更多階段案例,突出培養(yǎng)讀者的實(shí)踐能力。
3.配套豐富的教學(xué)資源,包括配套視頻、源代碼、題庫、教學(xué)課件等。
黑馬程序員,傳智播客旗下高端IT教育品牌,它是由中國Java培訓(xùn)先行者張孝祥老師發(fā)起,聯(lián)合***大的中文IT社區(qū)CSDN、中關(guān)村軟件園共同創(chuàng)辦的一家專業(yè)教育機(jī)構(gòu)。辦學(xué)至今,我們一直堅(jiān)守著“為千萬人少走彎路而著書,為中華軟件之崛起而講課”的辦學(xué)理念,堅(jiān)持培養(yǎng)優(yōu)秀軟件應(yīng)用工程師的宏偉目標(biāo),在累計培養(yǎng)的十萬余名學(xué)員中,其中90%的學(xué)員均已在北、上、廣等一線城市高薪就業(yè)。
第 1章 Java開發(fā)入門\t1
1.1 Java概述 1
1.1.1 什么是Java 1
1.1.2 Java語言的特點(diǎn) 2
1.1.3 Java語言的發(fā)展史 2
1.2 JDK的使用 3
1.2.1 安裝JDK 3
1.2.2 JDK目錄介紹 4
1.3 Java程序的開發(fā) 5
1.4 系統(tǒng)環(huán)境變量 7
1.4.1 path環(huán)境變量 7
1.4.2 classpath環(huán)境變量 9
1.5 Java程序運(yùn)行機(jī)制 10
1.6 Eclipse開發(fā)工具 10
1.6.1 Eclipse概述 11
1.6.2 Eclipse的下載與啟動 11
1.6.3 使用Eclipse進(jìn)行程序開發(fā) 13
1.6.4 Eclipse調(diào)試工具 17
1.7 IntelliJ IDEA開發(fā)工具 18
1.7.1 IDEA概述 19
1.7.2 IDEA的安裝與啟動 19
1.7.3 使用IDEA進(jìn)行程序開發(fā) 21
1.7.4 IDEA調(diào)試工具 22
1.8 本章小結(jié) 23
1.9 本章習(xí)題 23
第 2章 Java編程基礎(chǔ) 24
2.1 Java基本語法 24
2.1.1 Java程序的基本格式 24
2.1.2 Java中的注釋 25
2.1.3 Java中的標(biāo)識符 25
2.1.4 Java中的關(guān)鍵字 26
2.1.5 Java中的常量 27
2.2 Java中的變量 28
2.2.1 變量的定義 28
2.2.2 變量的數(shù)據(jù)類型 29
2.2.3 變量的類型轉(zhuǎn)換 30
2.2.4 變量的作用域 32
2.3 Java中的運(yùn)算符 33
2.3.1 算術(shù)運(yùn)算符 33
2.3.2 賦值運(yùn)算符 34
2.3.3 比較運(yùn)算符 35
2.3.4 邏輯運(yùn)算符 36
2.3.5 運(yùn)算符的優(yōu)先級 37
【案例2-1】 商品入庫 38
2.4 選擇結(jié)構(gòu)語句 38
2.4.1 if條件語句 38
2.4.2 三元運(yùn)算符 41
2.4.3 switch條件語句 42
【案例2-2】 小明都可以買什么 44
2.5 循環(huán)結(jié)構(gòu)語句 44
2.5.1 while循環(huán)語句 44
2.5.2 do...while循環(huán)語句 45
2.5.3 for循環(huán)語句 46
2.5.4 循環(huán)嵌套 47
2.5.5 跳轉(zhuǎn)語句(break、continue) 48
【案例2-3】 超市購物程序設(shè)計 50
【案例2-4】 為新員工分配部門 50
【案例2-5】 剪刀石頭布 50
2.6 方法 50
2.6.1 什么是方法 50
2.6.2 方法的重載 52
2.7 數(shù)組 53
2.7.1 數(shù)組的定義 53
2.7.2 數(shù)組的常見操作 56
2.7.3 二維數(shù)組 59
【案例2-6】 登錄注冊 60
【案例2-7】 抽取幸運(yùn)觀眾 60
2.8 本章小結(jié) 61
2.9 本章習(xí)題 61
第3章 面向?qū)ο螅ㄉ希?2
3.1 面向?qū)ο蟮乃枷搿?2
3.2 類與對象 63
3.2.1 類的定義 63
3.2.2 對象的創(chuàng)建與使用 64
3.2.3 對象的引用傳遞 66
3.2.4 訪問控制 67
3.3 封裝性 68
3.3.1 為什么要封裝 68
3.3.2 如何實(shí)現(xiàn)封裝 69
【案例3-1】 基于控制臺的購書系統(tǒng) 70
3.4 構(gòu)造方法 70
3.4.1 定義構(gòu)造方法 70
3.4.2 構(gòu)造方法的重載 71
【案例3-2】 銀行存取款 73
【案例3-3】 查看手機(jī)配置與功能 73
3.5 this關(guān)鍵字 73
3.5.1 使用this關(guān)鍵字調(diào)用本類中的
屬性 73
3.5.2 使用this關(guān)鍵字調(diào)用成員方法 74
3.5.3 使用this關(guān)鍵字調(diào)用本類的
構(gòu)造方法 74
3.6 代碼塊 75
3.6.1 普通代碼塊 75
3.6.2 構(gòu)造塊 76
3.7 static關(guān)鍵字 76
3.7.1 靜態(tài)屬性 77
3.7.2 靜態(tài)方法 78
3.7.3 靜態(tài)代碼塊 79
【案例3-4】 學(xué)生投票系統(tǒng) 80
3.8 本章小結(jié) 80
3.9 本章習(xí)題 80
第4章 面向?qū)ο螅ㄏ拢?1
4.1 類的繼承 81
4.1.1 繼承的概念 81
4.1.2 方法的重寫 83
4.1.3 super關(guān)鍵字 85
4.2 final關(guān)鍵字 87
4.2.1 final關(guān)鍵字修飾類 87
4.2.2 final關(guān)鍵字修飾方法 88
4.2.3 final關(guān)鍵字修飾變量 88
4.3 抽象類和接口 89
4.3.1 抽象類 89
4.3.2 接口 90
【案例4-1】 打印不同的圖形 93
【案例4-2】 飼養(yǎng)員喂養(yǎng)動物 93
【案例4-3】 多彩的聲音 93
【案例4-4】 學(xué)生和老師 93
【案例4-5】 圖形的面積與周長計算
程序 93
【案例4-6】 研究生薪資管理 93
4.4 多態(tài) 94
4.4.1 多態(tài)概述 94
4.4.2 對象類型的轉(zhuǎn)換 95
4.4.3 instanceof關(guān)鍵字 96
【案例4-7】 經(jīng)理與員工工資案例 97
【案例4-8】 模擬物流快遞系統(tǒng)程序
設(shè)計 97
4.5 Object類 97
4.6 內(nèi)部類 98
4.6.1 成員內(nèi)部類 98
4.6.2 局部內(nèi)部類 99
4.6.3 靜態(tài)內(nèi)部類 100
4.6.4 匿名內(nèi)部類 101
4.7 異常(Exception) 101
4.7.1 什么是異!101
4.7.2 try…catch和finally 103
4.7.3 throws關(guān)鍵字 104
4.7.4 編譯時異常與運(yùn)行時異常 106
4.7.5 自定義異!106
4.8 本章小結(jié) 107
4.9 本章習(xí)題 107
第5章 Java API 108
5.1 字符串類 108
5.1.1 String類的初始化 108
5.1.2 String類的常見操作 109
5.1.3 StringBuffer類 113
5.1.4 StringBuilder類 115
【案例5-1】 模擬訂單號生成 116
【案例5-2】 模擬默認(rèn)密碼自動生成 117
【案例5-3】 模擬用戶登錄 117
5.2 System類與Runtime類 117
5.2.1 System類 117
5.2.2 Runtime類 120
5.3 Math類與Random類 122
5.3.1 Math類 122
5.3.2 Random類 123
【案例5-4】 將字符串轉(zhuǎn)換為二進(jìn)制 125
5.4 日期時間類 125
5.4.1 Instant類 126
5.4.2 LocalDate類 127
5.4.3 LocalTime類與
LocalDateTime類 129
5.4.4 Period和Duration類 130
【案例5-5】 二月天 131
5.5 包裝類 131
5.6 正則表達(dá)式 133
5.6.1 元字符 133
5.6.2 Pattern類和Matcher類 134
5.6.3 String類對正則表達(dá)式的支持 136
5.7 本章小結(jié) 137
5.8 本章習(xí)題 137
第6章 集合 138
6.1 集合概述 138
6.2 Collection接口 139
6.3 List接口 139
6.3.1 List接口簡介 139
6.3.2 ArrayList集合 140
6.3.3 LinkedList集合 141
6.3.4 Iterator接口 143
6.3.5 foreach循環(huán) 145
【案例6-1】 庫存管理系統(tǒng) 146
【案例6-2】 學(xué)生管理系統(tǒng) 146
6.4 Set接口 146
6.4.1 Set接口簡介 146
6.4.2 HashSet集合 147
6.4.3 TreeSet集合 149
【案例6-3】 模擬用戶注冊 151
6.5 Map接口 151
6.5.1 Map接口簡介 151
6.5.2 HashMap集合 152
6.5.3 TreeMap集合 155
6.5.4 Properties集合 156
【案例6-4】 斗地主洗牌發(fā)牌 157
【案例6-5】 模擬百度翻譯 157
6.6 泛型 157
6.6.1 泛型概述 157
6.6.2 泛型類和泛型對象 158
6.6.3 泛型方法 159
6.6.4 泛型接口 160
6.6.5 類型通配符 161
6.7 JDK 8新特性—Lambda
表達(dá)式 162
6.8 本章小結(jié) 163
6.9 本章習(xí)題 163
第7章 I/O(輸入/輸出) 164
7.1 File類 164
7.1.1 創(chuàng)建File對象 164
7.1.2 File類的常用方法 165
7.1.3 遍歷目錄下的文件 167
7.1.4 刪除文件及目錄 169
【案例7-1】 批量操作文件管理器 170
7.2 字節(jié)流 170
7.2.1 字節(jié)流的概念 170
7.2.2 InputStream讀文件 172
7.2.3 OutputStream寫文件 173
7.2.4 文件的復(fù)制 175
7.2.5 字節(jié)緩沖流 176
【案例7-2】 商城進(jìn)貨交易記錄 177
【案例7-3】 日記本 177
7.3 字符流 177
7.3.1 字符流定義及基本用法 177
7.3.2 字符流操作文件 178
7.3.3 轉(zhuǎn)換流 180
【案例7-4】 升級版日記本 181
【案例7-5】 微信投票 181
7.4 本章小結(jié) 181
7.5 本章習(xí)題 181
第8章 多線程 182
8.1 線程概述 182
8.1.1 進(jìn)程 182
8.1.2 線程 183
8.2 線程的創(chuàng)建 183
8.2.1 繼承Thread類創(chuàng)建多線程 183
8.2.2 實(shí)現(xiàn)Runnable接口創(chuàng)建
多線程 185
8.2.3 兩種實(shí)現(xiàn)多線程方式的對比分析 186
8.3 線程的生命周期及狀態(tài)轉(zhuǎn)換 188
8.4 線程的調(diào)度 189
8.4.1 線程的優(yōu)先級 189
8.4.2 線程休眠 190
【案例8-1】 龜兔賽跑 191
8.4.3 線程讓步 192
8.4.4 線程插隊(duì) 192
【案例8-2】 Svip優(yōu)先辦理服務(wù) 193
8.5 多線程同步 193
8.5.1 線程安全問題 193
8.5.2 同步代碼塊 194
8.5.3 同步方法 195
8.5.4 死鎖問題 197
【案例8-3】 模擬銀行存取錢 198
【案例8-4】 工人搬磚 198
【案例8-5】 小朋友就餐 198
8.6 本章小結(jié) 198
8.7 本章習(xí)題 198
第9章 網(wǎng)絡(luò)編程 199
9.1 網(wǎng)絡(luò)通信協(xié)議 199
9.1.1 IP地址和端口號 200
9.1.2 InetAddress 201
9.1.3 UDP與TCP 201
9.2 UDP通信 202
9.2.1 DatagramPacket 203
9.2.2 DatagramSocket 203
9.2.3 UDP網(wǎng)絡(luò)程序 204
9.2.4 多線程的UDP網(wǎng)絡(luò)程序 206
【案例9-1】 模擬微信聊天 207
9.3 TCP通信 207
9.3.1 ServerSocket 207
9.3.2 Socket 208
9.3.3 簡單的TCP網(wǎng)絡(luò)程序 209
9.3.4 多線程的TCP網(wǎng)絡(luò)程序 211
【案例9-2】 字符串反轉(zhuǎn) 212
【案例9-3】 上傳文件 212
9.4 本章小結(jié) 212
9.5 本章習(xí)題 212
第 10章 JDBC 213
10.1 什么是JDBC 213
10.2 JDBC常用API 214
10.3 實(shí)現(xiàn)JDBC程序 216
10.4 本章小結(jié) 220
10.5 本章習(xí)題 220
第 11章 GUI(圖形用戶界面) 221
11.1 Swing概述 221
11.2 Swing頂級容器 222
11.2.1 JFrame 222
11.2.2 JDialog 223
11.3 布局管理器 225
11.3.1 FlowLayout 225
11.3.2 BorderLayout 227
11.3.3 GridLayout 228
11.3.4 GridBagLayout 229
11.4 事件處理機(jī)制 231
11.4.1 事件處理機(jī)制 231
11.4.2 Swing常用事件處理 232
11.5 Swing常用組件 236
11.5.1 面板組件 236
11.5.2 文本組件 238
11.5.3 標(biāo)簽組件 240
11.5.4 按鈕組件 241
11.5.5 下拉框組件 245
【案例11-1】 簡易記事本 249
【案例11-2】 簡易計算器 249
【案例11-3】 模擬QQ登錄 250
11.6 本章小結(jié) 250
11.7 本章習(xí)題 250
第 12章 Java反射機(jī)制 251
12.1 反射概述 251
12.2 認(rèn)識Class類 251
12.3 Class類的使用 253
12.3.1 通過無參構(gòu)造實(shí)例化對象 253
12.3.2 通過有參構(gòu)造實(shí)例化對象 255
12.4 反射的應(yīng)用 256
12.4.1 獲取所實(shí)現(xiàn)的全部接口 256
12.4.2 獲取全部方法 257
12.4.3 獲取全部屬性 258
【案例12-1】 重寫toString()方法 260
【案例12-2】 速度計算 260
【案例12-3】 利用反射實(shí)現(xiàn)通過讀取
配置文件對類進(jìn)行
實(shí)例化 260
12.5 本章小結(jié) 260
12.6 本章習(xí)題 260
第 13章 基于Java Swing的圖書
管理系統(tǒng) 261
13.1 項(xiàng)目概述 261
13.1.1 需求分析 261
13.1.2 功能結(jié)構(gòu) 262
13.1.3 項(xiàng)目預(yù)覽 262
13.2 數(shù)據(jù)庫設(shè)計 263
13.2.1 E-R圖設(shè)計 263
13.2.2 數(shù)據(jù)表結(jié)構(gòu) 264
13.3 項(xiàng)目環(huán)境搭建 265
13.4 實(shí)體類設(shè)計 266
13.5 工具類設(shè)計 269
13.6 用戶注冊和登錄模塊 270
13.6.1 實(shí)現(xiàn)用戶注冊功能 270
13.6.2 實(shí)現(xiàn)用戶登錄功能 273
13.7 圖書借還模塊 275
13.7.1 實(shí)現(xiàn)用戶借書功能 275
13.7.2 實(shí)現(xiàn)用戶還書功能 278
13.8 書籍管理模塊 281
13.8.1 實(shí)現(xiàn)書籍添加功能 281
13.8.2 實(shí)現(xiàn)書籍信息修改功能 283
13.9 用戶管理模塊 287
13.9.1 實(shí)現(xiàn)用戶信息修改功能 287
13.9.2 實(shí)現(xiàn)借閱信息查詢功能 290
13.10 類別管理模塊 291
13.11 本章小結(jié) 291