随书资源 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
