第1章 文件及IO流 1
任务驱动 1
学习路线 1
本章目标 2
1.1 文件 2
1.1.1 文件系统和路径 2
1.1.2 File类 2
1.1.3 FilenameFilter接口 5
1.2 IO流 6
1.2.1 流的分类 6
1.2.2 流的体系结构 8
1.3 字节流 9
1.3.1 InputStream 11
1.3.2 OutputStream 12
1.4 字符流 15
1.4.1 Reader 15
1.4.2 Writer 17
1.5 过滤流和转换流 19
1.5.1 过滤流 19
1.5.2 转换流 21
1.6 对象流 22
1.6.1 对象序列化与反序列化 22
1.6.2 ObjectInputStream和ObjectOutputStream 23
1.7 NIO 26
1.7.1 NIO概述 26
1.7.2 Buffer 27
1.7.3 Channel 29
1.7.4 NIO.2 31
1.8 贯穿任务实现 34
1.8.1 实现【任务1-1】 34
1.8.2 实现【任务1-2】 35
1.8.3 实现【任务1-3】 36
1.8.4 实现【任务1-4】 37
本章总结 40
小结 40
Q&A 40
章节练习 40
习题 40
上机 42
第2章 JDBC编程 43
任务驱动 43
学习路线 43
本章目标 44
2.1 JDBC基础 44
2.1.1 JDBC简介 44
2.1.2 JDBC驱动 45
2.1.3 JDBC API 46
2.2 数据库环境搭建 50
2.2.1 创建数据库表 50
2.2.2 设置Oracle驱动类路径 51
2.3 数据库访问 52
2.3.1 加载数据库驱动 52
2.3.2 建立数据连接 52
2.3.3 创建Statement对象 53
2.3.4 执行SQL语句 53
2.3.5 访问结果集 54
2.4 操作数据库 56
2.4.1 execute()方法 56
2.4.2 executeUpdate()和executeLargeUpdate()方法 58
2.4.3 PreparedStatement接口 60
2.4.4 CallableStatement接口 62
2.4.5 数据库访问优化 67
2.5 集元数据 73
2.5.1 DatabaseMetaData接口 73
2.5.2 ResultSetMetaData接口 74
2.6 事务处理 76
2.6.1 事务 76
2.6.2 保存点 79
2.6.3 批量更新 81
2.7 贯穿任务实现 83
2.7.1 实现【任务2-1】 83
2.7.2 实现【任务2-2】 88
2.7.3 实现【任务2-3】 90
2.7.4 实现【任务2-4】 92
本章总结 95
小结 95
Q&A 96
章节练习 96
习题 96
上机 97
第3章 Swing UI设计 98
任务驱动 98
学习路线 98
本章目标 99
3.1 GUI概述 99
3.1.1 AWT和Swing 99
3.1.2 Swing组件层次 100
3.2 容器 101
3.2.1 JFrame顶级容器 101
3.2.2 JPanel中间容器 103
3.3 布局 105
3.3.1 FlowLayout流布局 106
3.3.2 BorderLayout边界布局 108
3.3.3 GridLayout网格布局 110
3.3.4 CardLayout卡片布局 112
3.3.5 BoxLayout盒布局 114
3.3.6 NULL空布局 116
3.4 事件处理 118
3.4.1 Java事件处理机制 118
3.4.2 事件类 119
3.4.3 监听接口 121
3.4.4 事件处理步骤 122
3.4.5 键盘事件 126
3.4.6 鼠标事件 128
3.4.7 适配器 131
3.5 基本组件 133
3.5.1 Icon图标 133
3.5.2 JButton按钮 135
3.5.3 JLabel标签 137
3.5.4 文本组件 139
3.5.5 JComboBox组合框 143
3.5.6 JList列表框 146
3.5.7 JRadioButton单选按钮 148
3.5.8 JCheckBox复选框 149
3.5.9 计算器 151
3.6 贯穿任务实现 154
3.6.1 实现【任务3-1】 154
3.6.2 实现【任务3-2】 157
3.6.3 实现【任务3-3】 161
本章总结 166
小结 166
Q&A 167
章节练习 167
习题 167
上机 168
第4章 高级UI组件 169
任务驱动 169
学习路线 169
本章目标 169
4.1 对话框 170
4.1.1 JDialog对话框 170
4.1.2 JOptionPane标准对话框 175
4.1.3 JFileChooser文件对话框 180
4.1.4 JColorChooser颜色对话框 186
4.2 菜单 188
4.2.1 下拉式菜单 189
4.2.2 弹出式菜单 193
4.3 工具栏 195
4.4 表格 197
4.4.1 JTable类及相关接口 197
4.4.2 使用表格 200
4.5 树 204
4.5.1 JTree类及相关接口 204
4.5.2 使用树 207
4.6 贯穿任务实现 209
4.6.1 实现【任务4-1】 209
4.6.2 实现【任务4-2】 211
4.6.3 实现【任务4-3】 216
4.6.4 实现【任务4-4】 221
本章总结 227
小结 227
Q&A 227
章节练习 228
习题 228
上机 229
第5章 线程 230
任务驱动 230
学习路线 230
本章目标 230
5.1 线程概述 231
5.1.1 线程和进程 231
5.1.2 Java线程模型 233
5.1.3 主线程 235
5.2 创建线程 236
5.2.1 继承Thread类 237
5.2.2 实现Runnable接口 238
5.2.3 使用Callable和Future接口 239
5.3 线程生命周期 242
5.3.1 新建和就绪状态 242
5.3.2 运行和阻塞状态 243
5.3.3 死亡状态 246
5.4 线程优先级 247
5.5 线程同步 249
5.5.1 同步代码块 252
5.5.2 同步方法 254
5.5.3 同步锁 257
5.6 线程通信 261
5.7 Timer和Swing Timer 263
5.7.1 Timer 266
5.7.2 Swing Timer 268
5.8 贯穿任务实现 273
5.8.1 实现【任务5-1】 273
本章总结 274
小结 274
Q&A 275
章节练习 275
习题 275
上机 276
第6章 网络编程 277
任务驱动 277
学习路线 277
本章目标 277
6.1 网络基础 278
6.1.1 网络类型 278
6.1.2 TCP/IP协议 279
6.1.3 IP地址和端口 279
6.1.4 域名与DNS 281
6.2 Java网络API 282
6.2.1 InetAddress类 282
6.2.2 URL类 285
6.2.3 URLConnection类 287
6.2.4 URLDecoder和URLEncoder类 288
6.3 基于TCP的网络编程 289
6.3.1 Socket类 290
6.3.2 ServerSocket类 292
6.3.3 聊天室 296
6.4 贯穿任务实现 302
6.4.1 实现【任务6-1】 302
6.4.2 实现【任务6-2】 305
6.4.3 实现【任务6-3】 308
本章总结 311
小结 311
Q&A 312
章节练习 312
习题 312
上机 313
第7章 Java高级应用 314
任务驱动 314
学习路线 314
本章目标 315
7.1 类加载 315
7.1.1 Class类 315
7.1.2 类加载步骤 319
7.1.3 类加载器 320
7.1.4 ClassLoader类 321
7.2 反射 323
7.2.1 Executable抽象类 324
7.2.2 Constructor类 324
7.2.3 Method类 326
7.2.4 Field类 327
7.2.5 Parameter类 329
7.3 枚举 332
7.3.1 定义枚举类 332
7.3.2 包含属性和方法的枚举类 334
7.3.3 Enum类 337
7.4 注解 339
7.4.1 基本注解 340
7.4.2 定义注解 346
7.4.3 使用注解 347
7.4.4 元注解 349
7.5 国际化 354
7.5.1 Locale类 355
7.5.2 ResourceBundle类 358
7.6 格式化处理 361
7.6.1 数字格式化 361
7.6.2 货币格式化 363
7.6.3 日期格式化 363
7.6.4 Java 8新增的DateTimeFormatter 367
7.6.5 消息格式化 369
7.7 贯穿任务实现 372
7.7.1 实现【任务7-1】 372
7.7.2 实现【任务7-2】 373
本章总结 375
小结 375
Q&A 376
章节练习 376
习题 376
上机 377
第8章 Java 8新特性 378
任务驱动 378
学习路线 378
本章目标 378
8.1 接口的默认方法和静态方法 379
8.2 Lambda表达式 381
8.2.1 Lambda规范 381
8.2.2 Lambda应用 383
8.3 函数式接口 387
8.4 ::方法引用 388
8.5 Java 8新增类库 391
8.5.1 Optional类 391
8.5.2 Stream API 394
8.5.3 Base64类 395
8.5.4 并行数组 396
8.6 贯穿任务实现 398
8.6.1 实现【任务8-1】 398
8.6.2 实现【任务8-2】 400
本章总结 403
小结 403
Q&A 403
章节练习 403
习题 403
上机 404
附录A WindowBuilder插件 405
A.1 WindowBuilder简介 405
A.2 WindowBuilder插件安装 405
A.3 WindowBuilder插件的使用过程 410
A.4 WindowBuilder实例 412
A.4.1 窗体的创建 413
A.4.2 窗体的属性及布局 414
A.4.3 控件的添加与设置 414
A.4.4 添加按钮及事件处理 417
A.4.5 运行代码 418
附录B 数据库连接池 423
B.1 数据库连接池简介 423
B.2 DBCP数据源 423
B.3 C3P0数据源 425
附录C RowSet 428