本書(shū)作為一本詳盡的Java語(yǔ)言學(xué)習(xí)指南,緊密貼合JDK 17,并選用IntelliJ IDEA作為開(kāi)發(fā)工具,全方位涵蓋從Java基礎(chǔ)入門(mén)、Java語(yǔ)法基礎(chǔ),到面向?qū)ο蟪绦蛟O(shè)計(jì)、異常處理、Java API、集合、I/O流、泛型、反射、注解、多線程、JDBC技術(shù)及項(xiàng)目實(shí)戰(zhàn)等一系列的核心知識(shí)點(diǎn)。本書(shū)在內(nèi)容設(shè)計(jì)上循序漸進(jìn),幫助讀者逐步構(gòu)建起完整的Java知識(shí)體系。本書(shū)不僅包含豐富的理論知識(shí),還通過(guò)多個(gè)綜合案例進(jìn)行講解,讓讀者能夠?qū)⑺鶎W(xué)知識(shí)應(yīng)用于實(shí)際開(kāi)發(fā)場(chǎng)景中,從而獲得寶貴的實(shí)戰(zhàn)經(jīng)驗(yàn)和技巧。同時(shí),本書(shū)緊跟時(shí)代步伐,創(chuàng)新性地融入 AI 輔助編程理念,讀者可掃碼書(shū)中二維碼來(lái)獲取豐富的 AI 賦能資源。本書(shū)既可作為職業(yè)院校、本科院校計(jì)算機(jī)相關(guān)專業(yè)的教學(xué)用書(shū),也可作為Java技術(shù)開(kāi)發(fā)人員的參考用書(shū)。無(wú)論是Java語(yǔ)言的初學(xué)者,還是有一定經(jīng)驗(yàn)的開(kāi)發(fā)者,本書(shū)都可為其提供有力的學(xué)習(xí)支持,幫助其為未來(lái)的職業(yè)發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。
蔣輝,男,1983年7月生,漢族,中共黨員,碩士,副教授,天津理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院碩士研究生導(dǎo)師(兼職),天津仁愛(ài)學(xué)院智算工程學(xué)院副院長(zhǎng),天津市級(jí)計(jì)算機(jī)實(shí)驗(yàn)教學(xué)示范中心主任,學(xué)院數(shù)據(jù)科學(xué)與知識(shí)工程科研團(tuán)隊(duì)負(fù)責(zé)人。
第1章 Java基礎(chǔ)入門(mén) 1
1.1 Java語(yǔ)言的簡(jiǎn)介 2
1.1.1 Java語(yǔ)言的由來(lái) 2
1.1.2 Java虛擬機(jī) 2
1.1.3 Java語(yǔ)言的垃圾回收
機(jī)制 3
1.2 JDK 17的安裝與使用 3
1.2.1 JDK 17的安裝 4
1.2.2 Java程序的運(yùn)行過(guò)程 4
1.2.3 第一個(gè)Java程序 5
1.3 安裝并使用相關(guān)工具 5
1.3.1 構(gòu)建工具M(jìn)aven 5
1.3.2 開(kāi)發(fā)工具IntelliJ IDEA 9
小結(jié) 11
選擇題 11
經(jīng)典面試題 12
跟我上機(jī) 12
第2章 Java語(yǔ)法基礎(chǔ)(上) 13
2.1 注釋 14
2.1.1 單行注釋 14
2.1.2 多行注釋 14
2.1.3 文檔注釋 14
2.2 變量和常量 15
2.2.1 什么是變量 15
2.2.2 標(biāo)識(shí)符命名規(guī)則和
規(guī)范 15
2.2.3 變量的使用 16
2.2.4 什么是常量 16
2.2.5 常量的分類 16
2.2.6 常量在程序中的應(yīng)用 16
2.3 數(shù)據(jù)類型 17
2.3.1 基本數(shù)據(jù)類型 17
2.3.2 包裝類 19
2.3.3 引用數(shù)據(jù)類型 20
2.4 運(yùn)算符 21
2.4.1 運(yùn)算符的分類 21
2.4.2 運(yùn)算符的優(yōu)先級(jí)和
結(jié)合性 22
2.4.3 其他運(yùn)算符 23
2.5 控制語(yǔ)句 23
2.5.1 if條件語(yǔ)句 24
2.5.2 switch語(yǔ)句 25
2.5.3 case穿透 26
2.5.4 switch新特性和yield
關(guān)鍵字 26
2.5.5 循環(huán)語(yǔ)句 27
2.5.6 中斷語(yǔ)句
(跳轉(zhuǎn)語(yǔ)句) 29
2.6 Java語(yǔ)言中的關(guān)鍵字 31
小結(jié) 31
選擇題 31
經(jīng)典面試題 32
跟我上機(jī) 32
第3章 Java語(yǔ)法基礎(chǔ)(下) 33
3.1 數(shù)組 34
3.1.1 一維數(shù)組 34
3.1.2 二維數(shù)組 35
3.2 方法 37
3.2.1 方法的用途 38
3.2.2 方法的格式和調(diào)用 38
3.2.3 方法重載 39
3.3 String字符串及常用方法 40
3.3.1 基本概念 40
3.3.2 字符串的創(chuàng)建 42
3.3.3 String類的常用方法 43
3.3.4 String類型與基本數(shù)據(jù)
類型間的轉(zhuǎn)換 44
3.3.5 格式化字符串 45
小結(jié) 46
選擇題 46
經(jīng)典面試題 47
跟我上機(jī) 47
第4章 面向?qū)ο蟪绦蛟O(shè)計(jì)(上) 48
4.1 類與對(duì)象 49
4.1.1 面向?qū)ο蟮乃枷?49
4.1.2 類的定義 49
4.1.3 對(duì)象的創(chuàng)建與使用 49
4.1.4 對(duì)象的引用傳遞 50
4.1.5 訪問(wèn)控制 50
4.2 封裝性 52
4.2.1 為什么要封裝 52
4.2.2 如何實(shí)現(xiàn)封裝 52
4.3 構(gòu)造方法 54
4.3.1 定義構(gòu)造方法 54
4.3.2 構(gòu)造方法的重載 55
4.4 this關(guān)鍵字 56
4.4.1 使用this關(guān)鍵字來(lái)引用
本類中的屬性 56
4.4.2 使用this關(guān)鍵字來(lái)引用
成員方法 57
4.4.3 使用this關(guān)鍵字來(lái)引用
本類的構(gòu)造方法 57
4.5 代碼塊 58
4.5.1 普通代碼塊 59
4.5.2 構(gòu)造塊 59
4.6 static關(guān)鍵字 60
4.6.1 靜態(tài)屬性 61
4.6.2 靜態(tài)方法 61
4.6.3 靜態(tài)代碼塊 61
4.7 final關(guān)鍵字 62
4.7.1 使用final關(guān)鍵字修飾
類名 62
4.7.2 使用final關(guān)鍵字修飾
方法名 63
小結(jié) 65
選擇題 65
經(jīng)典面試題 66
跟我上機(jī) 66
第5章 面向?qū)ο蟪绦蛟O(shè)計(jì)(下) 67
5.1 繼承 68
5.1.1 繼承的定義 68
5.1.2 重寫(xiě) 69
5.1.3 使用super和this
關(guān)鍵字 70
5.2 多態(tài) 73
5.2.1 編譯時(shí)多態(tài)
(靜態(tài)綁定) 73
5.2.2 運(yùn)行時(shí)多態(tài)
(動(dòng)態(tài)綁定) 74
5.2.3 重寫(xiě)和重載的區(qū)別 74
5.3 抽象類 75
5.3.1 抽象類的定義 75
5.3.2 抽象類和抽象方法的
特征 76
5.4 接口 77
5.4.1 接口的定義 77
5.4.2 接口的實(shí)現(xiàn) 78
5.4.3 接口的繼承 78
5.4.4 接口在實(shí)際開(kāi)發(fā)環(huán)境中的
應(yīng)用 78
5.4.5 抽象類與接口的區(qū)別 80
5.5 內(nèi)部類 80
5.5.1 內(nèi)部類的使用場(chǎng)景 80
5.5.2 成員內(nèi)部類 81
5.5.3 靜態(tài)內(nèi)部類 81
5.5.4 局部?jī)?nèi)部類 81
5.5.5 匿名內(nèi)部類 82
小結(jié) 83
選擇題 83
經(jīng)典面試題 83
跟我上機(jī) 84
第6章 異常處理 85
6.1 異常的定義 86
6.2 異常的類型 86
6.3 異常處理 89
6.3.1 try-catch語(yǔ)句塊 89
6.3.2 try-catch-finally語(yǔ)句塊 90
6.3.3 throws關(guān)鍵字 90
6.3.4 throw關(guān)鍵字 91
6.3.5 throw和throws關(guān)鍵字的
區(qū)別 92
6.4 自定義異常 92
6.5 使用斷言 95
小結(jié) 96
選擇題 96
經(jīng)典面試題 97
跟我上機(jī) 97
第7章 Java API 98
7.1 Object類 99
7.1.1 Object類的概述 99
7.1.2 Object類的常用方法 99
7.2 Arrays類 100
7.2.1 Arrays類的概述 100
7.2.2 Arrays類的常用方法 100
7.3 System類與Runtime類 102
7.3.1 System類 102
7.3.2 Runtime類 103
7.4 Math類與Random類 104
7.4.1 Math類 104
7.4.2 Random類 105
7.5 日期時(shí)間類 106
7.5.1 LocalDate類 106
7.5.2 LocalTime類 107
7.5.3 LocalDateTime類 108
7.5.4 Period類 108
7.5.5 Duration類 109
7.5.6 DateTimeFormatter類 110
小結(jié) 111
選擇題 111
經(jīng)典面試題 112
跟我上機(jī) 112
第8章 集合 113
8.1 初識(shí)集合 114
8.2 Collection接口 115
8.2.1 Collection接口的常用
方法 115
8.2.2 Collection接口遍歷
元素 115
8.2.3 List接口 117
8.2.4 Set接口 119
8.2.5 Map接口 121
8.3 Collections工具類 123
8.3.1 排序操作 123
8.3.2 查找和替換 125
8.4 Lambda表達(dá)式 127
小結(jié) 128
選擇題 129
經(jīng)典面試題 129
跟我上機(jī) 129
第9章 I/O流 130
9.1 File類 131
9.1.1 File類概述 131
9.1.2 創(chuàng)建、刪除操作 131
9.1.3 判斷、獲取文件信息 131
9.1.4 目錄操作 132
9.2 字符集 133
9.2.1 常用的字符集 133
9.2.2 字符集的編碼和解碼
操作 134
9.3 I/O流的分類 135
9.3.1 字節(jié)流的使用 136
9.3.2 字符流的使用 138
9.3.3 緩沖流 139
9.3.4 轉(zhuǎn)換流 142
9.4 對(duì)象的序列化與反序列化 143
9.4.1 對(duì)象的序列化 144
9.4.2 對(duì)象的反序列化 144
9.5 打印流 145
9.6 I/O框架 146
9.7 Java NIO 148
9.7.1 NIO與I/O包 148
9.7.2 NIO包的主要組成
部分 149
小結(jié) 150
選擇題 151
經(jīng)典面試題 151
跟我上機(jī) 151
第10章 泛型、反射與注解 152
10.1 泛型 153
10.1.1 什么是泛型 153
10.1.2 使用和編寫(xiě)泛型 153
10.1.3 通配符 156
10.2 反射 158
10.2.1 Class類 158
10.2.2 訪問(wèn)字段 160
10.2.3 調(diào)用方法 161
10.2.4 調(diào)用構(gòu)造方法 162
10.2.5 獲取繼承關(guān)系 163
10.2.6 動(dòng)態(tài)代理 163
10.3 注解 165
10.3.1 使用注解 166
10.3.2 定義注解 166
10.3.3 處理注解 167
10.4 綜合案例 169
小結(jié) 170
選擇題 170
經(jīng)典面試題 171
跟我上機(jī) 171
第11章 多線程 172
11.1 多線程基礎(chǔ) 173
11.2 線程的實(shí)現(xiàn)方式 173
11.2.1 繼承Thread類 173
11.2.2 實(shí)現(xiàn)Runnable接口 174
11.2.3 使用線程池 175
11.3 線程的狀態(tài) 176
11.3.1 線程的狀態(tài)及生命
周期 176
11.3.2 線程的狀態(tài)轉(zhuǎn)換 177
11.4 線程的常用方法 177
11.4.1 sleep方法 178
11.4.2 join方法 178
11.4.3 yield方法 178
11.4.4 wait和notify方法 178
11.4.5 interrupt和stop
方法 179
11.4.6 setPriority (int newPriority)
和getPriority方法 180
11.4.7 setDaemon方法 180
11.5 進(jìn)階多線程 184
11.5.1 多線程引發(fā)問(wèn)題的解決
方法 185
11.5.2 線程同步與鎖機(jī)制 185
11.5.3 線程安全 186
小結(jié) 188
選擇題 188
經(jīng)典面試題 189
跟我上機(jī) 189
第12章 JDBC技術(shù) 190
12.1 數(shù)據(jù)庫(kù)編程基礎(chǔ) 191
12.1.1 JDBC數(shù)據(jù)庫(kù)應(yīng)用
模型 191
12.1.2 使用JDBC驅(qū)動(dòng)連接
數(shù)據(jù)庫(kù) 192
12.2 JDBC的常用類和接口 194
12.2.1 Driver接口 195
12.2.2 DriverManager類 195
12.2.3 Connection接口 196
12.2.4 Statement接口 196
12.2.5 PreparedStatement
接口 196
12.2.6 CallableStatement
接口 197
12.2.7 ResultSet接口 197
12.3 數(shù)據(jù)庫(kù)基本操作 198
12.3.1 數(shù)據(jù)插入操作 198
12.3.2 數(shù)據(jù)刪除操作 198
12.3.3 數(shù)據(jù)更新操作 199
12.3.4 數(shù)據(jù)查詢操作 199
12.3.5 編譯預(yù)處理 201
12.4 事務(wù)處理 205
12.4.1 事務(wù)概述 205
12.4.2 常用事務(wù)處理方法 206
小結(jié) 209
選擇題 209
經(jīng)典面試題 209
跟我上機(jī) 210
第13章 項(xiàng)目實(shí)戰(zhàn)——斗地主小游戲 211
13.1 項(xiàng)目概述 212
13.1.1 項(xiàng)目流程分析 212
13.1.2 項(xiàng)目開(kāi)發(fā)環(huán)境 214
13.2 準(zhǔn)備工作 214
13.2.1 創(chuàng)建項(xiàng)目 214
13.2.2 添加依賴 215
13.3 開(kāi)始編程 217
13.3.1 定義接口 217
13.3.2 編寫(xiě)主程序 218
13.3.3 初始化階段 220
13.3.4 發(fā)牌階段 223
13.3.5 搶地主階段 224
13.3.6 玩家出牌階段 225
13.3.7 結(jié)算階段 229
小結(jié) 229
經(jīng)典面試題 230