目 录 第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