本书深入介绍了Java语言的基础知识及其高级特性,以实例与项目为导向,帮助读者实现从基础知识到实践应用的快速飞跃。本书从Java基础到综合项目共分12章,内容涵盖Java虚拟机、数据类型、面向对象高级特性、面向对象分析与设计方法、类、接口、泛型、枚举、异常体系、集合框架、输入输出流、多线程、GUI图形用户界面设计、JDBC和综合项目实践等。 本书从实践性出发、以易教易学为目标,提供大量实例,每章后配有习题和习题参考答案,便于教师教学和学生自学。本书以实例与综合项目为主线贯穿Java编码规范、面向对象分析与设计方法、数组、集合、文件、多线程、Swing、JDBC等重要技术,希望读者能迅速将Java基础知识应用于项目实践。本书既可作为高等院校学习Java程序设计、面向对象编程、Java项目实践等相关课程的教材,也可作为具有一定数据库基础,对管理信息系统开发感兴趣的专业人员的参考书。
段林涛,男,博士,副教授,软件设计师,德国不莱梅大学计算与通信技术中心人工智能研究所博士后。长期从事计算机应用软件研发以及嵌入式实时系统、绿色计算、可穿戴智能交互等理论与应用的研究工作。
目 录
第1章 Java语言概述 1
1.1 Java语言简介 1
1.1.1 Java语言发展史 1
1.1.2 Java语言的特点 2
1.1.3 为什么学习Java语言 3
1.2 Java虚拟机 5
1.2.1 概述 5
1.2.2 JVM运行时数据区 6
1.3 Java开发环境 7
1.3.1 JRE与JDK 7
1.3.2 开发环境的搭建 10
1.4 第一个Java应用程序 13
1.4.1 编辑、编译与运行 13
1.4.2 第一个应用程序的基本结构 17
1.4.3 调试 18
习题1 19
第2章 数据类型与表达式 20
2.1 基本数据类型 20
2.1.1 整型类型 20
2.1.2 浮点类型 21
2.1.3 boolean类型 22
2.2 引用数据类型 22
2.2.1 类与对象 22
2.2.2 接口与实现类 23
2.2.3 数组 23
2.2.4 字符串 24
2.2.5 输入与输出 26
2.3 数据类型转换 28
2.3.1 基本数据类型转换 28
2.3.2 引用数据类型转换 31
2.4 运算符与表达式 32
2.4.1 操作数 33
2.4.2 算术运算符 34
2.4.3 关系运算符 35
2.4.4 逻辑运算符 36
2.4.5 位运算符 38
2.4.6 条件运算符 39
2.4.7 赋值运算符 39
2.4.8 语句与语句块 40
2.5 Java编程规范 41
2.5.1 注释 41
2.5.2 空白符 43
2.5.3 括号 43
2.5.4 命名规范 44
习题2 44
第3章 流程控制 46
3.1 程序的基本结构概述 46
3.2 选择结构 46
3.2.1 if语句 47
3.2.2 switch语句 49
3.3 循环结构 51
3.3.1 for语句 51
3.3.2 while语句 53
3.3.3 do-while语句 53
3.3.4 break与continue语句 54
习题3 57
第4章 数组 59
4.1 一维数组 59
4.1.1 数组声明与初始化 59
4.1.2 数组访问 60
4.2 二维数组与多维数组 61
4.2.1 数组声明与初始化 61
4.2.2 数组访问 63
4.3 方法调用与参数传递 64
4.3.1 方法 64
4.3.2 参数类型 65
4.4 数组常见操作 67
4.4.1 插入与删除 67
4.4.2 遍历 68
4.4.3 合并 68
4.4.4 动态扩展 69
4.4.5 查询 70
4.4.6 排序 70
习题4 72
第5章 类与对象 73
5.1 面向对象编程概述 73
5.2 类的定义与实例化 74
5.2.1 类路径与包 74
5.2.2 数据与方法 77
5.2.3 访问控制 79
5.2.4 方法重载 82
5.2.5 构造方法 82
5.2.6 static成员 86
5.2.7 final成员 87
5.3 面向对象特性 88
5.3.1 封装 88
5.3.2 继承 89
5.3.3 多态 91
5.4 面向对象高级特性 93
5.4.1 枚举类型 93
5.4.2 抽象类 94
5.4.3 接口 95
5.4.4 内部类 96
5.5 实例:图书进货管理子系统 (数组) 98
5.5.1 问题描述 98
5.5.2 系统功能分析 98
5.5.3 系统设计 99
5.5.4 系统实现 102
5.5.5 运行 104
习题5 107
第6章 异常 108
6.1 Java异常体系 108
6.1.1 Java异常 109
6.1.2 异常类型 109
6.1.3 常见异常类 111
6.2 异常处理机制 113
6.2.1 throws子句 113
6.2.2 try-catch-finally语句 114
6.2.3 try-with-resource语句 117
6.2.4 throw语句 120
6.2.5 异常链 121
6.3 自定义异常 121
6.4 日志 123
习题6 126
第7章 集合框架 127
7.1 泛型 127
7.1.1 泛型类 127
7.1.2 泛型接口 128
7.1.3 泛型方法 129
7.1.4 通配符类型 130
7.2 集合框架体系 131
7.2.1 集合概述 131
7.2.2 常用接口与实现类 132
7.3 集合对象 134
7.3.1 Set接口及实现类 134
7.3.2 SortedSet接口及实现类 137
7.3.3 List接口及实现类 140
7.3.4 Queue接口及实现类 142
7.3.5 Deque接口及实现类 145
7.3.6 Map接口及实现类 147
7.3.7 SortedMap接口及实现类 149
7.4 集合工具类 150
7.4.1 Arrays 150
7.4.2 Collections 154
7.5 实例:图书销售管理子系统 (集合) 156
7.5.1 问题描述 156
7.5.2 系统功能分析 156
7.5.3 系统设计 157
7.5.4 系统实现 162
7.5.5 运行 166
习题7 169
第8章 I/O流与文件 170
8.1 流的基本概念 170
8.2 字节I/O流 171
8.2.1 InputStream类和OutputStream类 171
8.2.2 FileInputStream类和FileOutputStream类 172
8.2.3 DataInputStream类和DataOutputStream类 173
8.2.4 BufferedInputStream类和BufferedOutputStream类 175
8.2.5 ByteArrayInputStream类和ByteArrayOutputStream类 176
8.2.6 PipedInputStream类和
PipedOutputStream类 177
8.2.7 ObjectInputStream类和
ObjectOutputStream类 179
8.2.8 CipherInputStream类和
CipherOutputStream类 181
8.3 字符I/O流 182
8.3.1 Reader类和Writer类 182
8.3.2 InputStreamReader类和
OutputStreamWriter类 183
8.3.3 FileReader类和FileWriter类 184
8.3.4 BufferedReader类和
BufferedWriter类 185
8.4 文件系统 186
8.4.1 文件相关接口与类 186
8.4.2 文件操作示例 188
8.4.3 随机访问文件类 189
8.5 实例:图书信息维护子系统(文件) 190
8.5.1 问题与系统功能描述 190
8.5.2 系统设计 191
8.5.3 系统实现 195
8.5.4 运行 200
习题8 201
第9章 多线程 202
9.1 线程的基本概念 202
9.2 线程控制 203
9.2.1 线程创建与启动 203
9.2.2 线程终止 204
9.2.3 线程阻塞 206
9.3 互斥与同步问题 207
9.3.1 线程互斥 208
9.3.2 线程同步 209
9.4 线程状态 212
9.5 死锁 213
9.6 实例:作业调度器 214
9.6.1 问题与系统功能描述 214
9.6.2 系统设计 215
9.6.3 系统实现 215
9.6.4 运行 218
习题9 219
第10章 Swing图形界面编程 220
10.1 AWT与Swing 220
10.2 容器与布局管理器 220
10.2.1 顶层容器 220
10.2.2 中间容器 222
10.2.3 布局管理器 227
10.3 Swing常用组件 239
10.3.1 JLabel 239
10.3.2 JButton 240
10.3.3 JComboBox 241
10.3.4 JTextField、JPasswordField和 JTextArea 243
10.3.5 JCheckBox和JRadioButton 245
10.3.6 JList 246
10.3.7 JTable 247
10.3.8 JTree 250
10.3.9 JOptionPane 253
10.4 事件侦听与处理模型 256
10.4.1 事件 256
10.4.2 监听器 258
10.4.3 适配器 260
10.5 实例:图书信息维护子系统(GUI) 261
10.5.1 问题与系统功能描述 261
10.5.2 系统设计 262
10.5.3 系统实现 264
10.5.4 运行 267
习题10 269
第11章 数据库编程 270
11.1 JDBC 270
11.2 常用接口与类 274
11.3 实例:图书信息维护子系统 (JDBC) 276
11.3.1 问题与系统功能描述 276
11.3.2 数据库设计与实现 277
11.3.3 系统实现 277
习题11 281
第12章 项目:图书进销存管理系统的设计与实现 282
12.1 问题与系统功能描述 282
12.1.1 项目描述 282
12.1.2 业务流程说明 283
12.2 系统设计 284
12.2.1 数据库设计 284
12.2.2 对象设计 288
12.2.3 用户合法性校验流程 291
12.2.4 基础信息维护流程(以图 书为例) 292
12.2.5 进货流程 292
12.2.6 销售流程 294
12.3 系统实现 295
12.3.1 数据库连接池 295
12.3.2 用户登录和注销 296
12.3.3 图书增删改查 297
12.3.4 进货流程 299
12.3.5 销售流程 302
12.3.6 单据明细获取 303
12.3.7 图书销售排行 304
12.3.8 图书库存统计 305
12.4 运行 305
12.4.1 系统登录界面 305
12.4.2 基础信息维护界面(以图书 为例) 306
12.4.3 进货界面 307
12.4.4 进货单维护界面 307
12.4.5 销售界面 308
12.4.6 销售单维护界面 309
12.4.7 图书销售排行界面 310
12.4.8 图书库存统计界面 310
12.5 系统扩展 311
参考文献 312