目 录
第1 章建立Java 程序开发环境
1
1.1 Java 语言概述
1
1.1.1 程序设计语言
1
1.1.2 Java 语言的特点
1
1.2 建立Java 开发环境
2
1.3 第一个“Hello world!”程序
2
1.3.1 创建Java 程序工程
2
1.3.2 运行Java 程序
5
1.4 Java 程序的运行过程
6
1.4.1 编译代码
7
1.4.2 Java 程序的运行机理
8
1.5 练习:安装Java 开发环境.
9
第2 章 Java 基本运算和输入/ 输出 10
2.1 Java 程序的组成10
2.2 Java 基本数据类型和字面常量11
2.3 变量11
2.3.1 定义变量和访问变量 .12
2.3.2 显示变量的值 .12
2.4 数据运算13
2.5 Java 基本输入/ 输出和String 类的使用13
2.5.1 基本输出语句 .14
2.5.2 基本输入语句 .16
2.5.3 String 类的使用 .17
2.6 练习:计算工资.18
第3 章 Java 程序流程控制19
3.1 顺序语句和if 分支语句19
3.2 switchcase default 分支语句及其应用实践19
3.3 循环语句21
3.4 数组21
3.4.1 定义数组 22
Jsczw.indd 3
2024/9/13 14:29:26
3.4.2 访问数组元素 .22
3.4.3 使用for each 遍历数组元素 23
3.4.4 二维数组 24
3.5 switch 表达式和yield 关键字的使用26
3.6 函数及其调用.27
3.7 案例:学生成绩计算系统29
3.7.1 案例任务 29
3.7.2 任务分析 29
3.7.3 任务实施 30
3.8 练习:计算质数及其和.30
第4 章类和对象31
4.1 定义类和创建对象31
4.1.1 类的含义 31
4.1.2 定义类 .32
4.1.3 在IDEA 中创建Java 类34
4.1.4 创建及使用对象 37
4.2 构造函数41
4.2.1 类的构造函数 .41
4.2.2 构造函数重载 .43
4.3 类的静态属性、静态方法和静态代码块 45
4.3.1 静态属性 46
4.3.2 静态方法 48
4.3.3 静态代码块 49
4.3.4 静态属性、静态方法和静态代码块应用实践 51
4.4 内部类 .51
4.4.1 成员内部类 51
4.4.2 静态内部类 54
4.4.3 使用内部类应用实践 .56
4.5 案例:使用Java 类描述一元二次方程56
4.5.1 案例任务 56
4.5.2 任务分析 56
4.5.3 任务实施 56
4.6 练习:计算三角形的面积和周长58
第5 章继承和多态.59
5.1 类的继承59
5.1.1 继承的概念 59
5.1.2 定义类的继承关系 60
IV
Jsczw.indd 4
2024/9/13 14:29:26
5.1.3 super 关键字及方法重写64
5.1.4 练习:完成Teacher 子类和Worker 子类的代码编写 66
5.2 访问限定符 66
5.2.1 访问限定符及其可访问性 66
5.2.2 访问限定符使用举例 .67
5.3 抽象类和多态.67
5.3.1 抽象类和使用final
关键字修饰属性 67
5.3.2 多态 71
5.3.3 使用instanceof 关键字检查对象类型72
5.3.4 对象数组 73
5.4 使用final、record 和sealed 关键字修饰类76
5.4.1 使用final
关键字修饰类 76
5.4.2 使用record 关键字定义Java 类76
5.4.3 使用sealed 关键字修饰类 78
5.5 案例:定义Java 程序类应用实践78
5.5.1 案例任务 78
5.5.2 任务分析 78
5.5.3 任务实施 79
5.6 练习:打印自定义图形形状82
第6 章接口.83
6.1 接口及其应用.83
6.1.1 定义接口 84
6.1.2 实现接口 85
6.1.3 使用接口及instanceof 关键字在接口中的应用.87
6.1.4 接口的继承 89
6.2 接口的默认方法、静态方法和私有方法 90
6.3 函数式接口和lambda 表达式 93
6.3.1 函数式接口 93
6.3.2 使用匿名内部类实现接口 94
6.3.3 lambda 入门:使用lambda 表达式实现函数式接口95
6.3.4 lambda 表达式基本语法 96
6.3.5 接口方法引用 .97
6.4 接口、匿名内部类和lambda 表达式应用实践 .97
6.5 案例:按价格排序不同产品97
6.5.1 案例任务 98
6.5.2 任务分析 98
6.5.3 任务实施 98
6.6 练习:计算空间中两点的距离103
V
Jsczw.indd 5
2024/9/13 14:29:26
第7 章枚举类型104
7.1 枚举类型入门:一个表示四季的枚举类型104
7.2 枚举类型进阶106
7.3 枚举类型应用实践108
7.4 案例:员工Staff 类 109
7.4.1 案例任务 .110
7.4.2 任务分析 .110
7.4.3 任务实施 .110
7.5 练习:水果的成熟季节 111
第8 章 Java 基础类的使用.112
8.1 Java 基本类112
8.1.1 Object 类112
8.1.2 基本数据类型的包装类 .113
8.1.3 大数据类 .114
8.1.4 System 类 115
8.1.5 Math 类.116
8.2 字符串类.116
8.2.1 String 类 117
8.2.2 StringBuffer 类 .117
8.3 随机数生成器类 .119
8.3.1 Random 类119
8.3.2 使用RandomGenerator 接口生成随机数.120
8.4 日期时间类 121
8.4.1 Date 类121
8.4.2 Calendar 类.121
8.4.3 SimpleDateFormat 类122
8.5 使用Java 基础类应用实践124
8.6 案例:猜数游戏124
8.6.1 案例任务 .124
8.6.2 任务分析 .124
8.6.3 任务实施 .124
8.7 练习:计算闰年126
第9 章 Java 程序异常及程序调试技术127
9.1 程序错误分类127
9.2 Java 程序异常及其处理入门127
9.2.1 Java 程序异常现象举例 .127
9.2.2 Java 异常处理入门 129
VI
Jsczw.indd 6
2024/9/13 14:29:27
9.3 Java 程序异常及其处理进阶131
9.3.1 Error 类.132
9.3.2 Exception 类 133
9.3.3 非检查性异常 133
9.3.4 检查性异常 133
9.3.5 Java 异常处理 135
9.3.6 自定义异常 135
9.4 案例:处理程序异常136
9.4.1 案例任务 .136
9.4.2 任务分析 .136
9.4.3 任务实施 .137
9.5 在IDEA 中调试Java 程序 140
9.6 Java 异常及程序调试应用实践.142
9.7 练习:将从键盘输入的字符串转换为浮点数142
第10 章集合类及流式编程143
10.1 泛型 .143
10.1.1 泛型入门 143
10.1.2 泛型类 .145
10.1.3 泛型方法 146
10.1.4 泛型接口 147
10.1.5 泛型类型限制和泛型通配符“?”150
10.2 集合类150
10.2.1 集合类主要接口和类之间的关系 150
10.2.2 List 接口及其实现类的使用 151
10.2.3 Set 接口及其实现类的使用 154
10.2.4 Map 接口及其实现类的使用.158
10.2.5 数组工具类Arrays 的使用 .160
10.3 Java 流式编程161
10.3.1 Java 常用函数式接口及其使用 161
10.3.2 Optional 类及泛型通配符“?”使用举例164
10.3.3 流式编程入门 .168
10.3.4 创建Stream 和操作Stream.170
10.4 Java 数组、集合类及流式编程应用实践.170
10.5 案例:自制词典171
10.5.1 案例任务 171
10.5.2 任务分析 171
10.5.3 任务实施 171
10.6 练习:使用流式编程查询学生信息.172
VII
Jsczw.indd 7
2024/9/13 14:29:27
第11 章文件输入/ 输出操作173
11.1 文件基本操作 173
11.1.1 使用File 类操作文件属性 173
11.1.2 使用Files 类操作文件属性及读/ 写文件内容175
11.1.3 使用WatchService 监视目录和文件变化 175
11.2 字节流读/ 写 .175
11.2.1 字节流的含义 .175
11.2.2 读/ 写文件字节流 176
11.2.3 使用try-with-resource 处理异常和关闭资源178
11.2.4 读/ 写内存字节流 180
11.3 字符流读/ 写 .181
11.3.1 字符编码和字符解码 .182
11.3.2 无缓冲字符流读/ 写 184
11.3.3 带缓冲字符流读/ 写 186
11.4 对象数据读/ 写 188
11.5 Java 流操作应用实践 190
11.6 案例:通讯录程序190
11.6.1 案例任务 190
11.6.2 任务分析 191
11.6.3 任务实施 191
11.7 练习:自制工资管理程序195
第12 章 Java 反射和注解196
12.1 Java 反射196
12.1.1 反射概念的引入 196
12.1.2 反射的核心——Class 类197
12.1.3 通过反射获取类的构造方法、属性和普通方法 199
12.2 Java 注解202
12.2.1 Java 标准注解 .202
12.2.2 自定义注解 202
12.3 Java 反射与注解应用实践.206
12.4 案例:自动注入对象.207
12.4.1 案例任务 207
12.4.2 任务分析 207
12.4.3 任务实施 207
12.5 练习:自动注入Teacher 对象 .210
第13 章多线程211
13.1 Java 多线程入门211
VIII
Jsczw.indd 8
2024/9/13 14:29:27
13.2 Thread 类及创建子线程214
13.2.1 通过继承Thread 类创建线程215
13.2.2 通过实现Runnable 接口创建线程.215
13.2.3 使用FutureTask 创建线程 218
13.3 线程状态、线程调度和线程优先级221
13.4 线程并发控制 222
13.4.1 多线程中数据的不一致性现象举例 .222
13.4.2 使用synchronized 控制线程并发225
13.4.3 使用原子类型变量控制线程并发 227
13.4.4 使用Lock 接口控制线程并发 229
13.5 线程同步控制及生产者—消费者模型 229
13.6 线程池229
13.6.1 Java 线程池框架 230
13.6.2 线程池使用举例 231
13.6.3 多例多线程和单例多线程及ThreadLocal 类的使用234
13.7 Java 线程应用实践.237
13.8 案例:找出小于1000 的所有质数和水仙花数.238
13.8.1 案例任务 238
13.8.2 任务分析 238
13.8.3 任务实施 238
13.9 练习:统计上网人数.241
第14 章网络编程.242
14.1 网络通信协议 242
14.1.1 IP 地址InetAddress 类和端口 242
14.1.2 UDP 和TCP .244
14.2 使用UDP 进行通信 244
14.2.1 DatagramSocket 类和DatagramPacket 类 244
14.2.2 UDP 点对点通信程序举例 .245
14.3 使用TCP 进行通信249
14.3.1 客户/ 服务器模式 249
14.3.2 ServerSocket 类和Socket 类 249
14.3.3 TCP 通信程序举例 250
14.4 使用HTTP 访问网络页面.254
14.4.1 Java 对HTTP 的实现概述 254
14.4.2 使用HttpClient 访问网络页面.256
14.5 Java 网络编程应用实践257
14.6 案例:聊天程序258
14.6.1 案例任务 258
IX
Jsczw.indd 9
2024/9/13 14:29:27
14.6.2 任务分析 258
14.6.3 任务实施 258
14.7 练习:完善聊天程序Chatter 类的代码.263
第15 章使用JDBC 访问数据库 264
15.1 JDBC 概述 264
15.2 加载数据库驱动程序265
15.3 JDBC 接口访问数据库的核心类和核心接口 266
15.3.1 DriverManager 类注册数据库驱动程序266
15.3.2 Connection 接口建立与数据库的连接.267
15.3.3 Statement 接口执行SQL 语句268
15.3.4 PreparedStatement 接口执行参数化SQL 语句269
15.3.5 ResultSet 接口处理查询结果.270
15.4 案例:实现对book 表的增删改查271
15.4.1 案例任务 271
15.4.2 任务分析 271
15.4.3 任务实施 271
15.5 JDBC 应用实践 278
15.6 练习:完成案例程序的删改查功能.278
第16 章 Java 图形用户界面279
16.1 Swing 概述279
16.2 容器组件 279
16.2.1 JFrame 顶级窗口容器.279
16.2.2 JPanel 面板容器.281
16.3 布局管理器.283
16.3.1 FlowLayout 布局283
16.3.2 GridLayout 布局.285
16.3.3 BorderLayout 布局286
16.4 Swing 常用组件288
16.5 Swing 事件处理290
16.6 Java 图形界面应用程序开发实践.293
16.7 案例:图像混合器293
16.7.1 案例任务 293
16.7.2 任务分析 293
16.7.3 任务实施 294
16.8 练习:图形界面聊天程序297
参考文献.298