Java大學教程——語言、類庫與AI應用
潘微科、苗嘉雨
商品描述
目錄大綱
隨書資源 AI助教
第1章 概述 ………………………………………………………… 1
1.1 引言 ………………………………………………………………… 2
1.2 Java簡史 …………………………………………………………… 2
1.3 Java的特點 ………………………………………………………… 2
1.4 Java的開發環境 …………………………………………………… 3
1.4.1 集成開發環境 ……………………………………………… 3
1.4.2 JDK ………………………………………………………… 3
1.5 第一個Java程序…………………………………………………… 4
1.6 AI時代的Java編程 ……………………………………………… 4
1.6.1 在 AI時代,學習Java程序設計有何意義? ……………… 5
1.6.2 在 AI時代,如何開設Java程序設計課程? ……………… 5
1.6.3 在 AI時代,如何學習Java程序設計? …………………… 5
1.6.4 在 AI時代,在學習Java的過程中碰到問題怎麼辦? …… 6
1.6.5 在 AI時代,如何讓自己成為一個更具競爭力的Java
程序員? …………………………………………………… 6
1.6.6 在 AI時代,有了大模型,還需掌握Java語言的基礎
知識嗎? …………………………………………………… 6
1.7 本章小結 …………………………………………………………… 6
習題………………………………………………………………………… 6
第2章 基本語法 …………………………………………………… 8
2.1 引言 ………………………………………………………………… 9
2.2 標識符 ……………………………………………………………… 9
2.3 關鍵字 ……………………………………………………………… 9
2.4 基本數據類型……………………………………………………… 10
2.5 運算符……………………………………………………………… 11
2.5.1 算術運算符………………………………………………… 11
Ⅳ Java大學教程:語言、類庫與 AI應用
2.5.2 關系運算符………………………………………………… 11
2.5.3 邏輯運算符………………………………………………… 12
2.5.4 位運算符…………………………………………………… 12
2.5.5 賦值運算符………………………………………………… 12
2.5.6 條件運算符………………………………………………… 12
2.5.7 其他運算符………………………………………………… 12
2.6 表達式……………………………………………………………… 13
2.7 語句………………………………………………………………… 13
2.7.1 聲明語句…………………………………………………… 13
2.7.2 表達式語句………………………………………………… 13
2.7.3 條件語句…………………………………………………… 13
2.7.4 循環語句…………………………………………………… 14
2.7.5 跳轉語句…………………………………………………… 14
2.7.6 其他語句…………………………………………………… 15
2.8 數組………………………………………………………………… 16
2.9 本章小結…………………………………………………………… 16
習題 ……………………………………………………………………… 16
第3章 類與對象 ………………………………………………… 18
3.1 引言………………………………………………………………… 19
3.2 類…………………………………………………………………… 19
3.2.1 類的聲明…………………………………………………… 19
3.2.2 類的成員變量……………………………………………… 20
3.2.3 類的成員方法……………………………………………… 22
3.2.4 內部類……………………………………………………… 25
3.2.5 討論………………………………………………………… 26
3.3 對象………………………………………………………………… 26
3.3.1 對象的創建………………………………………………… 26
3.3.2 對象的反射創建…………………………………………… 27
3.3.3 對象的引用………………………………………………… 29
3.3.4 對象的實體………………………………………………… 29
3.3.5 對象的使用………………………………………………… 30
3.3.6 討論………………………………………………………… 31
3.4 本章小結…………………………………………………………… 32
習題 ……………………………………………………………………… 32
第4章 繼承 ………………………………………………………… 34
4.1 引言………………………………………………………………… 35
4.2 子類………………………………………………………………… 35
目錄 Ⅴ
4.2.1 子類的繼承性……………………………………………… 35
4.2.2 子類的成員變量…………………………………………… 36
4.2.3 子類的成員方法…………………………………………… 39
4.3 子類對象…………………………………………………………… 42
4.3.1 子類對象的創建…………………………………………… 42
4.3.2 子類對象的引用…………………………………………… 43
4.3.3 子類對象的實體…………………………………………… 43
4.3.4 子類對象的使用…………………………………………… 43
4.4 本章小結…………………………………………………………… 46
習題 ……………………………………………………………………… 47
第5章 訪問權限 ………………………………………………… 48
5.1 引言………………………………………………………………… 49
5.2 訪問修飾符………………………………………………………… 49
5.2.1 關鍵字public …………………………………………… 49
5.2.2 關鍵字protected ………………………………………… 50
5.2.3 無修飾符(默認)…………………………………………… 50
5.2.4 關鍵字private …………………………………………… 50
5.3 訪問範圍…………………………………………………………… 50
5.3.1 類內………………………………………………………… 50
5.3.2 包內………………………………………………………… 51
5.3.3 跨包………………………………………………………… 52
5.4 本章小結…………………………………………………………… 54
習題 ……………………………………………………………………… 55
第6章 抽象類與接口 …………………………………………… 56
6.1 引言………………………………………………………………… 57
6.2 抽象類……………………………………………………………… 57
6.2.1 抽象類的聲明……………………………………………… 57
6.2.2 抽象類的成員變量………………………………………… 57
6.2.3 抽象類的成員方法………………………………………… 58
6.2.4 抽象類的繼承……………………………………………… 58
6.2.5 繼承抽象類的匿名類……………………………………… 60
6.3 接口………………………………………………………………… 61
6.3.1 接口的聲明………………………………………………… 61
6.3.2 接口的成員變量…………………………………………… 61
6.3.3 接口的成員方法…………………………………………… 62
6.3.4 接口的實現………………………………………………… 63
6.3.5 實現接口的匿名類………………………………………… 65
Ⅵ Java大學教程:語言、類庫與 AI應用
6.4 本章小結…………………………………………………………… 65
習題 ……………………………………………………………………… 66
第7章 泛型 ………………………………………………………… 67
7.1 引言………………………………………………………………… 68
7.2 泛型方法…………………………………………………………… 68
7.3 泛型類……………………………………………………………… 70
7.3.1 泛型類的聲明、定義和使用 ……………………………… 70
7.3.2 泛型類的繼承……………………………………………… 71
7.4 泛型接口…………………………………………………………… 71
7.4.1 泛型接口的聲明…………………………………………… 71
7.4.2 泛型接口的實現…………………………………………… 71
7.5 本章小結…………………………………………………………… 72
習題 ……………………………………………………………………… 73
第8章 字符串 …………………………………………………… 74
8.1 引言………………………………………………………………… 75
8.2 String類 …………………………………………………………… 75
8.2.1 字符串字面量……………………………………………… 75
8.2.2 部分成員變量……………………………………………… 75
8.2.3 構造方法…………………………………………………… 76
8.2.4 部分常用方法……………………………………………… 77
8.3 StringBuffer類 …………………………………………………… 78
8.3.1 部分成員變量……………………………………………… 79
8.3.2 構造方法…………………………………………………… 79
8.3.3 部分常用方法……………………………………………… 79
8.4 StringBuilder類 …………………………………………………… 80
8.5 正則表達式與模式匹配…………………………………………… 81
8.5.1 正則表達式………………………………………………… 81
8.5.2 模式匹配…………………………………………………… 83
8.6 本章小結…………………………………………………………… 85
習題 ……………………………………………………………………… 85
第9章 數據結構 ………………………………………………… 87
9.1 引言………………………………………………………………… 88
9.2 映射………………………………………………………………… 88
9.2.1 HashMap類 ……………………………………………… 88
9.2.2 LinkedHashMap類 ……………………………………… 90
9.2.3 TreeMap類 ……………………………………………… 91
目錄 Ⅶ
9.2.4 ConcurrentHashMap類 ………………………………… 97
9.3 列表………………………………………………………………… 97
9.3.1 ArrayList類 ……………………………………………… 98
9.3.2 LinkedList類 …………………………………………… 100
9.3.3 CopyOnWriteArrayList類 ……………………………… 100
9.4 集合 ……………………………………………………………… 101
9.4.1 HashSet類 ……………………………………………… 101
9.4.2 TreeSet類 ……………………………………………… 102
9.4.3 LinkedHashSet類 ……………………………………… 103
9.4.4 ConcurrentSkipListSet類 ……………………………… 103
9.5 隊列 ……………………………………………………………… 103
9.5.1 PriorityQueue類 ………………………………………… 103
9.5.2 ArrayDeque類 …………………………………………… 105
9.5.3 ConcurrentLinkedQueue類 …………………………… 106
9.6 位集合 …………………………………………………………… 106
9.7 應用舉例 ………………………………………………………… 108
9.8 本章小結 ………………………………………………………… 113
習題……………………………………………………………………… 114
第10章 I/O ……………………………………………………… 116
10.1 引言……………………………………………………………… 117
10.2 文件……………………………………………………………… 117
10.3 字符流…………………………………………………………… 119
10.3.1 文件字符流 ……………………………………………… 120
10.3.2 字符數組字符流 ………………………………………… 121
10.3.3 字符串字符流 …………………………………………… 122
10.3.4 字節字符轉換流 ………………………………………… 123
10.3.5 緩沖字符流 ……………………………………………… 125
10.4 字節流…………………………………………………………… 126
10.4.1 文件字節流 ……………………………………………… 127
10.4.2 字節數組字節流 ………………………………………… 128
10.4.3 數據字節流 ……………………………………………… 129
10.4.4 對象字節流 ……………………………………………… 131
10.4.5 緩沖字節流 ……………………………………………… 133
10.5 其他……………………………………………………………… 134
10.5.1 隨機訪問文件 …………………………………………… 134
10.5.2 掃描器 …………………………………………………… 135
10.6 本章小結………………………………………………………… 135
習題……………………………………………………………………… 136
Ⅷ Java大學教程:語言、類庫與 AI應用
第11章 線程……………………………………………………… 137
11.1 引言……………………………………………………………… 138
11.2 線程的基本概念………………………………………………… 138
11.2.1 線程的含義 ……………………………………………… 138
11.2.2 線程的狀態 ……………………………………………… 138
11.2.3 線程的優先級 …………………………………………… 139
11.3 創建線程………………………………………………………… 139
11.3.1 Runnable接口 ………………………………………… 139
11.3.2 Thread類 ……………………………………………… 139
11.3.3 繼承 Thread類 ………………………………………… 141
11.3.4 實現 Runnable接口 …………………………………… 142
11.4 線程同步………………………………………………………… 143
11.4.1 不同步的示例 …………………………………………… 143
11.4.2 關鍵字synchronized…………………………………… 144
11.4.3 ReentrantLock類 ……………………………………… 146
11.4.4 其他同步方式 …………………………………………… 148
11.5 線程通信………………………………………………………… 148
11.5.1 通過 Object類的方法 ………………………………… 148
11.5.2 通過 Condition接口的方法 …………………………… 152
11.6 線程池…………………………………………………………… 154
11.7 本章小結………………………………………………………… 156
習題……………………………………………………………………… 157
第12章 網絡……………………………………………………… 159
12.1 引言……………………………………………………………… 160
12.2 網絡的基本概念………………………………………………… 160
12.2.1 URL類 ………………………………………………… 160
12.2.2 InetAddress類 ………………………………………… 161
12.2.3 InetSocketAddress類 ………………………………… 162
12.3 TCP編程 ……………………………………………………… 162
12.3.1 ServerSocket類 ………………………………………… 162
12.3.2 Socket類………………………………………………… 163
12.3.3 點對點通信 ……………………………………………… 163
12.4 UDP編程 ……………………………………………………… 167
12.4.1 DatagramPacket類 …………………………………… 167
12.4.2 DatagramSocket類 …………………………………… 167
12.4.3 點對點通信 ……………………………………………… 168
12.4.4 組播通信 ………………………………………………… 169
12.5 本章小結………………………………………………………… 171
目錄 Ⅸ
習題……………………………………………………………………… 171
第13章 數據庫 ………………………………………………… 173
13.1 引言……………………………………………………………… 174
13.2 MySQL ………………………………………………………… 174
13.3 數據庫編程……………………………………………………… 175
13.3.1 MySQLJDBC驅動程序 ……………………………… 175
13.3.2 DriverManager類 ……………………………………… 175
13.3.3 Connection接口………………………………………… 175
13.3.4 Statement接口 ………………………………………… 175
13.3.5 完整示例 ………………………………………………… 176
13.4 本章小結………………………………………………………… 177
習題……………………………………………………………………… 177
第14章 AI應用開發技術 …………………………………… 178
14.1 引言……………………………………………………………… 179
14.2 Java與 AI應用 ………………………………………………… 179
14.2.1 數據結構:交互數據的載體 …………………………… 179
14.2.2 I/O 流與網絡編程:數據傳輸的橋梁 ………………… 180
14.2.3 多線程與JDBC:復雜任務的支撐 …………………… 181
14.3 AI服務平臺和 API …………………………………………… 183
14.3.1 AI服務平臺 …………………………………………… 183
14.3.2 AIAPI調用流程 ……………………………………… 184
14.3.3 AIAPI調用實例 ……………………………………… 185
14.4 提示詞…………………………………………………………… 191
14.4.1 提示詞的基本結構 ……………………………………… 191
14.4.2 提示詞的撰寫技巧 ……………………………………… 191
14.5 AI應用實例 …………………………………………………… 192
14.5.1 項目1:智能問答助手(同步調用)…………………… 192
14.5.2 項目2:AI點評工具(異步調用)……………………… 195
14.6 本章小結………………………………………………………… 205
習題……………………………………………………………………… 206
第15章 AI應用系統實踐 …………………………………… 207
15.1 引言……………………………………………………………… 208
15.2 LangChain4j框架 ……………………………………………… 208
15.2.1 LangChain4j框架簡介 ………………………………… 208
15.2.2 LangChain4j框架示例 ………………………………… 208
15.3 需求梳理………………………………………………………… 211
Ⅹ Java大學教程:語言、類庫與 AI應用
15.4 交互界面………………………………………………………… 212
15.5 會話管理………………………………………………………… 213
15.5.1 基本原理 ………………………………………………… 213
15.5.2 會話歷史 ………………………………………………… 213
15.5.3 聊天記憶 ………………………………………………… 214
15.6 知識庫與 RAG ………………………………………………… 216
15.6.1 RAG 原理 ……………………………………………… 216
15.6.2 RAG 流程 ……………………………………………… 216
15.6.3 知識庫構建 ……………………………………………… 216
15.6.4 向量檢索 ………………………………………………… 218
15.7 流式輸出與ElasticSearch集成 ……………………………… 219
15.7.1 流式輸出 ………………………………………………… 219
15.7.2 ElasticSearch集成 ……………………………………… 220
15.8 完整代碼………………………………………………………… 222
15.9 AI模型本地部署 ……………………………………………… 230
15.9.1 ONNX和 ONNXRuntime …………………………… 231
15.9.2 註意事項 ………………………………………………… 231
15.10 本章小結 ……………………………………………………… 233
習題……………………………………………………………………… 233
附錄 A 集成開發環境安裝 …………………………………… 234
附錄B JDK安裝 ………………………………………………… 244
附錄C Java工程師進階指南 ……………………………… 252
附錄 D 教學進度建議 ………………………………………… 255
附錄E Java相關書籍 ………………………………………… 257
參考文獻……………………………………………………………… 260
後記 …………………………………………………………………… 261
致謝 …………………………………………………………………… 263







