第1篇 入门篇 2
第1章 Java开发前奏 2
1.1 Java简介 3
1.1.1 Java语言 3
1.1.2 Java的优势 3
1.1.3 Java近几年的排行 4
1.1.4 Java的发展史 5
1.1.5 Java的成功案例 6
1.2 Java特性 6
1.2.1 Java的应用领域 7
1.2.2 Java语法的特征 7
1.3 怎么学Java 9
1.3.1 Java程序员的成长之路 9
1.3.2 如何学好Java 9
1.4 本章小结 10
第2章 搭建Java开发环境 11
2.1 JDK的下载及安装 12
2.1.1 下载JDK 12
2.1.2 安装JDK 14
2.1.3 Windows系统下配置和测试JDK 15
2.2 Java程序的开发过程 17
2.3 一个简单的Java程序 18
2.3.1 构建Java程序 18
2.3.2 编译和运行Java程序 19
2.3.3 使用Java核心API文档 20
2.4 综合应用 20
2.4.1 添加依赖项目到构建路径 20
2.4.2 创建用户自定义类库 21
2.4.3 为项目添加类库 23
2.5 本章小结 23
2.6 跟我上机 24
第3章 Java语言基本语法 25
3.1 常量与变量 26
3.1.1 常量的概念及使用 26
3.1.2 变量的概念及命名规则 27
3.1.3 变量的有效范围 28
3.2 基本的数据类型 31
3.2.1 整数类型 32
3.2.2 浮点类型 34
3.2.3 字符类型 34
3.2.4 布尔类型 35
3.2.5 基本数据类型间的转换 35
3.3 Java运算符 37
3.3.1 赋值运算符 37
3.3.2 算术运算符 37
3.3.3 关系运算符 38
3.3.4 逻辑运算符 39
3.3.5 位运算符 42
3.3.6 其他运算符 45
3.3.7 运算符的优先级别及结合性 47
3.4 Java标识符与关键字 47
3.4.1 标识符 48
3.4.2 关键字 48
3.5 编码规范 49
3.5.1 Java命名规范 49
3.5.2 代码编写规则 50
3.6 Java程序的注释 50
3.6.1 单行注释 50
3.6.2 使用多行注释 51
3.6.3 文档注释的使用 51
3.7 综合应用 52
3.7.1 加密可以这样简单 52
3.7.2 位运算实现两个变量值的互换 52
3.8 本章小结 53
3.9 跟我上机 53
第4章 算法和流程控制 54
4.1 算法 55
4.1.1 什么是算法 55
4.1.2 算法的描述方法 55
4.2 分支语句 56
4.2.1 简单的if条件语句 56
4.2.2 if-else条件语句 58
4.2.3 if-else-if多分支语句 60
4.2.4 switch多分支语句 62
4.2.5 if语句和switch语句的区别 65
4.3 循环语句 66
4.3.1 for循环语句 66
4.3.2 while循环语句 68
4.3.3 do-while循环语句 70
4.3.4 foreach语句 73
4.3.5 各循环语句间的区别 74
4.4 跳转语句 74
4.4.1 break跳转语句 74
4.4.2 continue跳转语句 75
4.4.3 return跳转语句 75
4.5 综合应用 76
4.5.1 根据消费金额计算折扣 76
4.5.2 判断某一年是否为闰年 77
4.6 本章小结 78
4.7 跟我上机 78
第5章 Eclipse开发工具 79
5.1 使用Eclipse开发工具的原因 80
5.2 Eclipse工作台 80
5.2.1 Eclipse工作台概述 80
5.2.2 透视图 81
5.2.3 编辑器 82
5.2.4 熟悉Eclipse的菜单栏和工具栏 83
5.3 编写Java程序 84
5.3.1 新建Java项目 84
5.3.2 新建Java类 85
5.3.3 编写Java代码 87
5.3.4 运行程序 88
5.3.5 保存并关闭Java项目 88
5.4 Eclipse资源管理 89
5.4.1 导入Java类 89
5.4.2 导入Java项目 90
5.4.3 导出Java项目 91
5.5 本章小结 92
第6章 面向对象程序设计 93
6.1 面向对象程序设计 94
6.1.1 面向对象程序设计概述 94
6.1.2 面向对象程序设计的特点 95
6.2 类和对象 97
6.2.1 定义类 97
6.2.2 成员变量和局部变量 98
6.2.3 构造方法的概念及用途 100
6.2.4 创建对象 101
6.2.5 使用对象 102
6.2.6 销毁对象 103
6.3 包 103
6.3.1 包的概念 103
6.3.2 创建包 103
6.3.3 使用包中的类 104
6.4 Java中的继承关系 105
6.4.1 继承的概念 105
6.4.2 创建子类 105
6.4.3 继承的使用原则 106
6.4.4 使用this关键字 107
6.4.5 使用super关键字 108
6.5 多态技术 109
6.5.1 方法的重载 109
6.5.2 方法的覆盖 110
6.6 抽象类 112
6.7 final类与final方法 115
6.7.1 final类 115
6.7.2 final方法 116
6.8 Java中的接口 117
6.8.1 定义接口 117
6.8.2 实现接口 118
6.9 综合应用 120
6.9.1 定义不能重写的方法 120
6.9.2 温度转换 121
6.10 本章小结 121
6.11 跟我上机 122
第7章 数组应用 123
7.1 一维数组 124
7.1.1 声明一维数组 124
7.1.2 创建一维数组 124
7.1.3 初始化一维数组 126
7.1.4 使用一维数组 128
7.2 二维数组 129
7.2.1 声明二维数组 129
7.2.2 创建二维数组 130
7.2.3 初始化二维数组 131
7.2.4 使用二维数组 132
7.3 操作数组 133
7.3.1 复制数组 134
7.3.2 排序数组 135
7.3.3 比较数组 137
7.3.4 搜索数组 137
7.3.5 填充数组 138
7.3.6 传递数组 139
7.4 综合应用 140
7.4.1 使用直接选择排序法 140
7.4.2 使用快速排序法 142
7.5 本章小结 143
7.6 跟我上机 143
第8章 字符串处理 144
8.1 初识字符串 145
8.1.1 字符串常量 145
8.1.2 声明字符串变量 145
8.1.3 创建字符串 145
8.2 连接字符串 148
8.2.1 字符串与字符串的连接 148
8.2.2 字符串与其他类型数据的连接 148
8.3 字符串操作 150
8.3.1 比较字符串 150
8.3.2 获取字符串的长度 153
8.3.3 字符串的大小写转换 153
8.3.4 查找字符串 153
8.3.5 获取字符串的子字符串 156
8.3.6 替换或去除字符串中的空格 156
8.3.7 分割字符串 157
8.4 格式化字符串 158
8.4.1 常规类型的格式化 158
8.4.2 日期和时间字符串格式化 161
8.5 StringBuilder类 165
8.5.1 创建字符串生成器 165
8.5.2 字符串生成器的应用 166
8.6 正则表达式 168
8.7 综合应用 170
8.7.1 格式化当前日期 170
8.7.2 获取字符串中的汉字个数 171
8.8 本章小结 172
8.9 跟我上机 172
第2篇 提高篇 174
第9章 集合类 174
9.1 集合类概述 175
9.2 Collection接口 175
9.2.1 addAll()方法 175
9.2.2 removeAll()方法 176
9.2.3 retainAll()方法 177
9.2.4 containsAll()方法 178
9.2.5 toArray(T[]t)方法 179
9.3 List集合 180
9.3.1 List接口的实现类 180
9.3.2 List的用法 180
9.4 Set集合 183
9.4.1 HashSet类 183
9.4.2 TreeSet类 185
9.5 Map集合 187
9.5.1 Map接口 187
9.5.2 Map接口的实现类 188
9.6 综合应用 190
9.6.1 使用List集合传递学生信息 190
9.6.2 实现省市级联输出 191
9.7 本章小结 192
9.8 跟我上机 192
第10章 异常处理机制 193
10.1 异常处理 194
10.2 常见异常类 194
10.3 Java异常处理 195
10.3.1 错误 195
10.3.2 捕获异常 196
10.4 内置异常类 197
10.4.1 Error类 198
10.4.2 Exception类 198
10.5 自定义异常 200
10.6 在方法中抛出异常 202
10.6.1 使用throws关键字抛出异常 202
10.6.2 使用throw关键字抛出异常 202
10.7 异常处理使用原则 204
10.8 本章小结 204
10.9 跟我上机 204
第11章 I/O技术 205
11.1 I/O处理方式 206
11.1.1 I/O的基本模式 206
11.1.2 Java提供的流类 207
11.1.3 输入流 207
11.1.4 输出流 208
11.2 以byte为数据单位的流类 209
11.2.1 InputStream类 209
11.2.2 OutputStream类 210
11.3 以char为数据单位的流类 211
11.3.1 Reader类 211
11.3.2 Writer类 213
11.4 常用I/O处理方式 214
11.4.1 文件类 214
11.4.2 文件的字节输入/输出流 216
11.4.3 文件的字符输入/输出流 219
11.4.4 带缓存的输入/输出流 222
11.4.5 对象序列化 224
11.5 对文件及文件夹进行操作 226
11.5.1 复制文件 226
11.5.2 复制文件夹 227
11.5.3 删除文件 229
11.5.4 分行写入文件 229
11.6 综合应用 230
11.6.1 文件锁定 230
11.6.2 将用户输入的内容保存到文本文件 231
11.7 本章小结 232
11.8 跟我上机 232
第12章 多线程技术 233
12.1 线程概述 234
12.1.1 进程 234
12.1.2 线程 234
12.2 线程的创建 236
12.2.1 继承Thread类 236
12.2.2 实现Runnable接口 237
12.2.3 两种创建线程方式的比较 239
12.3 线程的生命周期 239
12.4 线程的优先级及执行顺序 240
12.4.1 线程的优先级 241
12.4.2 线程的执行顺序 241
12.5 线程的控制 245
12.5.1 线程的启动 245
12.5.2 线程的挂起 245
12.5.3 结束线程 249
12.5.4 线程组 250
12.6 线程的同步 251
12.6.1 线程安全 251
12.6.2 线程同步机制 252
12.7 线程通信 255
12.8 多线程产生死锁 259
12.9 综合应用 259
12.9.1 使用守护线程 259
12.9.2 线程的插队 260
12.10 本章小结 261
12.11 跟我上机 262
第13章 枚举与泛型 263
13.1 枚举类型 264
13.1.1 使用枚举类型设置常量 264
13.1.2 深入了解枚举类型 266
13.1.3 枚举类型的优势 271
13.2 泛型 272
13.2.1 向上转型与向下转型 272
13.2.2 定义泛型类 273
13.2.3 泛型的常规用法 274
13.2.4 泛型的高级用法 278
13.2.5 泛型总结 280
13.3 综合应用 281
13.3.1 遍历枚举接口的元素 281
13.3.2 选择合适的枚举元素 281
13.4 本章小结 282
13.5 跟我上机 282
第14章 Swing基础知识 283
14.1 Swing概述 284
14.1.1 Swing的特点 284
14.1.2 Swing包 284
14.1.3 常用Swing组件概述 285
14.2 常见窗体 285
14.2.1 JFrame窗体 285
14.2.2 JDialog窗体 287
14.3 基本组件 289
14.3.1 标签组件 289
14.3.2 按钮组件 291
14.3.3 文本组件 294
14.3.4 列表组件 297
14.4 向窗体中添加容器 300
14.4.1 JPanel面板的应用 300
14.4.2 JScrollPane面板的应用 301
14.4.3 分割面板的应用 302
14.4.4 选项卡面板的应用 305
14.5 选择合理的布局方式 307
14.5.1 灵活指定组件位置的绝对布局 307
14.5.2 窗体默认的边界布局 308
14.5.3 奇妙的网格布局 309
14.5.4 按指定方向摆放组件的流式布局 311
14.6 常用的事件监听器 312
14.6.1 事件监听器概述 312
14.6.2 事件监听器 313
14.6.3 动作事件(ActionEvent)监听器 314
14.6.4 焦点事件(FocusEvent)监听器 315
14.7 综合应用 316
14.7.1 实现按钮关键字描红 316
14.7.2 鼠标经过时按钮放大 317
14.8 本章小结 318
14.9 跟我上机 318
第15章 JDBC技术 319
15.1 了解数据库基础知识 320
15.1.1 生活中的数据库 320
15.1.2 了解数据库的特点及分类 320
15.2 JDBC技术 321
15.2.1 JDBC技术概述 321
15.2.2 在项目中添加数据库驱动的原因 322
15.3 认识JDBC中不可缺少的类与接口 322
15.3.1 管理数据库驱动类DriverManager 322
15.3.2 数据库连接接口Connection 323
15.3.3 发送SQL语句接口Statement 323
15.3.4 可执行动态SQL的接口PreparedStatement 324
15.3.5 查询结果集接口ResultSet 324
15.4 操作数据库的步骤 325
15.4.1 加载JDBC驱动程序 325
15.4.2 创建数据库连接 326
15.4.3 执行SQL语句 327
15.4.4 获得查询结果 328
15.4.5 关闭连接 328
15.5 常见的数据操作 329
15.5.1 添加数据 329
15.5.2 修改数据 330
15.5.3 删除数据 331
15.5.4 查询数据 332
15.5.5 使用预处理语句 334
15.6 综合应用 336
15.6.1 查询商品销售的前3名 336
15.6.2 查询男生和女生的人数 339
15.7 本章小结 339
15.8 跟我上机 340
第16章 Swing高级组件 341
16.1 为窗体添加菜单 342
16.1.1 创建菜单栏 342
16.1.2 创建菜单 342
16.1.3 创建菜单项 343
16.1.4 创建弹出式菜单 345
16.1.5 创建个性化菜单 346
16.2 实现为窗体添加工具栏 349
16.2.1 创建工具栏 350
16.2.2 为工具栏添加工具按钮 350
16.3 使用对话框 351
16.3.1 打开本地文件的文件对话框 352
16.3.2 为用户提供信息对话框 354
16.3.3 色彩斑斓的颜色选择对话框 356
16.3.4 实现确认操作的确认对话框 357
16.4 表格组件 358
16.4.1 实现创建表格 359
16.4.2 表格模型 360
16.4.3 维护表格模型 362
16.5 使用系统托盘 364
16.5.1 实现获取系统托盘 365
16.5.2 为系统托盘添加图标的方法 365
16.5.3 添加弹出菜单 366
16.6 综合应用 368
16.6.1 简单的图片浏览器 368
16.6.2 浏览文本文件内容 369
16.7 本章小结 372
16.8 跟我上机 373
第17章 GUI事件处理机制 374
17.1 窗体事件 375
17.1.1 捕获窗体焦点变化事件 375
17.1.2 捕获窗体状态变化事件 376
17.1.3 捕获其他窗体事件 378
17.2 鼠标操作 379
17.2.1 鼠标事件监听器 379
17.2.2 鼠标事件处理 380
17.3 键盘控制事件 382
17.3.1 键盘事件监听器 382
17.3.2 键盘事件处理 383
17.4 选项事件 385
17.5 表格模型事件 386
17.6 综合应用 389
17.6.1 创建总显示在最上方的窗体 389
17.6.2 创建内部子窗体 390
17.7 本章小结 390
17.8 跟我上机 391
第18章 网络程序设计 392
18.1 网络程序设计基础 393
18.1.1 局域网和广域网 393
18.1.2 网络协议 393
18.2 端口与套接字 394
18.2.1 端口 395
18.2.2 套接字 395
18.3 TCP编程原理 396
18.3.1 TCP协议 396
18.3.2 TCP编程的常用类 396
18.3.3 编写TCP程序 400
18.4 UDP编程原理 402
18.4.1 UDP协议 402
18.4.2 掌握UDP编程的常用类 403
18.4.3 编写UDP程序 404
18.5 综合应用 407
18.5.1 客户端一对一通信 407
18.5.2 聊天室程序 409
18.6 本章小结 412
18.7 跟我上机 412
第3篇 实战篇 414
第19章 进销存管理系统 414
19.1 系统分析 415
19.1.1 需求分析 415
19.1.2 可行性分析 415
19.2 系统设计 415
19.2.1 项目规划 415
19.2.2 功能结构分析 416
19.3 数据库设计 417
19.3.1 E-R图 417
19.3.2 数据表概要说明 419
19.3.3 主要数据表的结构 419
19.4 系统登录模块设计 421
19.4.1 登录功能设计 421
19.4.2 系统登录模块设计 422
19.5 程序主界面的设计 425
19.5.1 创建主窗口 425
19.5.2 初始化程序主界面的initialize()方法 426
19.5.3 添加菜单和工具按钮的方法 427
19.5.4 创建Action对象的addFrameAction()方法 430
19.5.5 获取功能窗体的getIFrame()方法 431
19.6 基础信息模块设计 431
19.6.1 商品信息管理模块设计 432
19.6.2 商品添加功能设计 432
19.6.3 设置组件布局位置的setupComponent()方法 436
19.6.4 商品修改与删除功能设计 436
19.7 进货管理模块设计 439
19.7.1 进货单管理功能设计 439
19.7.2 初始化表格的initTable()方法 444
19.7.3 初始化商品下拉选择框的initSpBox()方法 444
19.7.4 初始化进货单窗体的initTasks类 445
19.7.5 初始化进货票号文本框的initPiaoHao()方法 446
19.8 销售管理模块设计 446
19.8.1 销售单管理功能设计 446
19.8.2 初始化销售单窗体的initTasks类 448
19.9 库存管理模块设计 449
19.9.1 库存盘点功能设计 449
19.9.2 库存价格调整功能设计 452
19.10 查询统计模块设计 454
19.10.1 销售排行功能设计 454
19.10.2 执行销售排行功能的事件监听器 455
19.11 系统设置模块设计 456
19.11.1 操作员管理 456
19.11.2 权限管理 459
19.12 数据库模块 462
19.12.1 数据库连接 462
19.12.2 获取用户信息的getUser()方法 462
19.12.3 添加商品信息的addSp()方法 463
19.12.4 获取所有商品信息的getSpInfos()方法 464
19.12.5 添加入库信息的insertRukuInfo()方法 465
19.12.6 获取最大入库编号的getRuKuMainMaxId()方法 466
19.12.7 更新用户信息的updateUser()方法 467
19.13 本章小结 468
第20章 企业内部通信系统 469
20.1 系统分析 470
20.1.1 需求分析 470
20.1.2 可行性分析 470
20.1.3 编写项目计划书 471
20.2 系统设计 473
20.2.1 系统目标 473
20.2.2 系统功能结构 474
20.2.3 数据库设计 474
20.2.4 系统预览 475
20.2.5 文件夹组织结构 476
20.3 主窗体设计 477
20.3.1 创建主窗体 477
20.3.2 记录窗体位置 481
20.4 公共模块设计 482
20.4.1 数据库操作类 482
20.4.2 系统工具类 487
20.5 系统托盘模块设计 492
20.5.1 系统托盘模块概述 492
20.5.2 系统托盘模块技术分析 492
20.5.3 系统托盘模块实现 493
20.6 系统工具模块设计 495
20.6.1 系统工具模块概述 495
20.6.2 系统工具模块技术分析 495
20.6.3 系统工具模块实现 496
20.7 用户管理模块设计 500
20.7.1 用户管理模块概述 500
20.7.2 用户管理模块技术分析 501
20.7.3 用户管理模块实现 502
20.8 通信模块设计 506
20.8.1 通信模块概述 506
20.8.2 通信模块技术分析 507
20.8.3 通信模块实现 507
20.9 开发技巧与难点分析 511
20.9.1 合理使用图片资源 511
20.9.2 使用JDK的系统托盘 512
20.10 本章小结 513