第1章 初识Java2
视频讲解:25分钟
1.1 Java简介3
1.1.1 什么是Java语言3
1.1.2 Java的应用领域3
1.1.3 Java的版本4
1.1.4 怎样学好Java5
1.1.5 Java API文档6
1.2 Java语言的特性7
1.2.1 简单7
1.2.2 面向对象7
1.2.3 分布性7
1.2.4 可移植性7
1.2.5 解释型8
1.2.6 安全性8
1.2.7 健壮性8
1.2.8 多线程8
1.2.9 高性能8
1.2.10 动态8
1.3 搭建Java环境9
1.3.1 JDK下载9
1.3.2 Windows系统的JDK环境11
1.4 第一个Java程序14
1.5 小结15
1.6 实践与练习16
第2章 熟悉Eclipse开发工具17
视频讲解:13分钟
2.1 熟悉Eclipse18
2.1.1 Eclipse简介18
2.1.2 下载Eclipse18
2.1.3 安装Eclipse的中文语言包20
2.1.4 Eclipse的配置与启动23
2.1.5 Eclipse工作台25
2.1.6 透视图与视图25
2.1.7 菜单栏26
2.1.8 工具栏29
2.1.9 “包资源管理器”视图30
2.1.10 “控制台”视图30
2.2 使用Eclipse31
2.2.1 创建Java项目31
2.2.2 创建Java类文件31
2.2.3 使用编辑器编写程序代码32
2.2.4 运行Java程序35
2.3 程序调试35
2.4 小结37
2.5 实践与练习37
第1章 初识Java2
视频讲解:25分钟
1.1 Java简介3
1.1.1 什么是Java语言3
1.1.2 Java的应用领域3
1.1.3 Java的版本4
1.1.4 怎样学好Java5
1.1.5 Java API文档6
1.2 Java语言的特性7
1.2.1 简单7
1.2.2 面向对象7
1.2.3 分布性7
1.2.4 可移植性7
1.2.5 解释型8
1.2.6 安全性8
1.2.7 健壮性8
1.2.8 多线程8
1.2.9 高性能8
1.2.10 动态8
1.3 搭建Java环境9
1.3.1 JDK下载9
1.3.2 Windows系统的JDK环境11
1.4 第一个Java程序14
1.5 小结15
1.6 实践与练习16
第2章 熟悉Eclipse开发工具17
视频讲解:13分钟
2.1 熟悉Eclipse18
2.1.1 Eclipse简介18
2.1.2 下载Eclipse18
2.1.3 安装Eclipse的中文语言包20
2.1.4 Eclipse的配置与启动23
2.1.5 Eclipse工作台25
2.1.6 透视图与视图25
2.1.7 菜单栏26
2.1.8 工具栏29
2.1.9 “包资源管理器”视图30
2.1.10 “控制台”视图30
2.2 使用Eclipse31
2.2.1 创建Java项目31
2.2.2 创建Java类文件31
2.2.3 使用编辑器编写程序代码32
2.2.4 运行Java程序35
2.3 程序调试35
2.4 小结37
2.5 实践与练习37
第3章 Java语言基础38
视频讲解:1小时45分钟
3.1 Java主类结构39
3.1.1 包声明39
3.1.2 声明成员变量和局部变量40
3.1.3 编写主方法40
3.1.4 导入API类库40
3.2 基本数据类型40
3.2.1 整数类型41
3.2.2 浮点类型42
3.2.3 字符类型43
3.2.4 布尔类型44
3.3 变量与常量44
3.3.1 标识符和关键字45
3.3.2 声明变量45
3.3.3 声明常量46
3.3.4 变量的有效范围47
3.4 运算符48
3.4.1 赋值运算符49
3.4.2 算术运算符50
3.4.3 自增和自减运算符51
3.4.4 比较运算符51
3.4.5 逻辑运算符52
3.4.6 位运算符53
3.4.7 三元运算符55
3.4.8 运算符优先级56
3.5 数据类型转换56
3.5.1 隐式类型转换57
3.5.2 显式类型转换58
3.6 代码注释与编码规范59
3.6.1 代码注释59
3.6.2 编码规范60
3.7 小结61
3.8 实践与练习61
第4章 流程控制62
视频讲解:1小时21分钟
4.1 复合语句63
4.2 条件语句64
4.2.1 if条件语句64
4.2.2 switch多分支语句68
4.3 循环语句71
4.3.1 while循环语句71
4.3.2 do…while循环语句72
4.3.3 for循环语句73
4.4 循环控制75
4.4.1 break语句75
4.4.2 continue语句78
4.5 小结79
4.6 实践与练习79
第5章 字符串80
视频讲解:1小时53分钟
5.1 String类81
5.1.1 声明字符串81
5.1.2 创建字符串81
5.2 连接字符串82
5.2.1 连接多个字符串83
5.2.2 连接其他数据类型83
5.3 获取字符串信息84
5.3.1 获取字符串长度85
5.3.2 字符串查找85
5.3.3 获取指定索引位置的字符86
5.4 字符串操作87
5.4.1 获取子字符串87
5.4.2 去除空格88
5.4.3 字符串替换89
5.4.4 判断字符串的开始与结尾90
5.4.5 判断字符串是否相等91
5.4.6 按字典顺序比较两个字符串93
5.4.7 字母大小写转换94
5.4.8 字符串分割95
5.5 格式化字符串96
5.5.1 日期和时间字符串格式化97
5.5.2 常规类型格式化100
5.6 使用正则表达式101
5.7 字符串生成器103
5.8 小结105
5.9 实践与练习105
第6章 数组106
视频讲解:1小时21分钟
6.1 数组概述107
6.2 一维数组的创建及使用107
6.2.1 创建一维数组107
6.2.2 初始化一维数组108
6.2.3 使用一维数组109
6.3 二维数组的创建及使用109
6.3.1 二维数组的创建110
6.3.2 二维数组初始化111
6.3.3 使用二维数组111
6.4 数组的基本操作112
6.4.1 遍历数组112
6.4.2 填充替换数组元素113
6.4.3 对数组进行排序115
6.4.4 复制数组116
6.4.5 数组查询117
6.5 数组排序算法119
6.5.1 冒泡排序119
6.5.2 直接选择排序122
6.5.3 反转排序124
6.6 小结125
6.7 实践与练习126
第7章 类和对象127
视频讲解:1小时27分钟
7.1 面向对象概述128
7.1.1 对象128
7.1.2 类129
7.1.3 封装130
7.1.4 继承130
7.1.5 多态131
7.2 类132
7.2.1 成员变量132
7.2.2 成员方法133
7.2.3 权限修饰符133
7.2.4 局部变量135
7.2.5 局部变量的有效范围135
7.2.6 this关键字136
7.3 类的构造方法137
7.4 静态变量、常量和方法138
7.5 类的主方法140
7.6 对象141
7.6.1 对象的创建142
7.6.2 访问对象的属性和行为143
7.6.3 对象的引用145
7.6.4 对象的比较146
7.6.5 对象的销毁147
7.7 小结148
7.8 实践与练习148
第8章 包装类149
视频讲解:11分钟
8.1 Integer150
8.2 Boolean152
8.3 Byte154
8.4 Character155
8.5 Double156
8.6 Number158
8.7 小结158
8.8 实践与练习158
第9章 数字处理类159
视频讲解:16分钟
9.1 数字格式化160
9.2 数学运算162
9.2.1 Math类163
9.2.2 常用数学运算方法163
9.3 随机数167
9.3.1 Math.random()方法167
9.3.2 Random类169
9.4 大数字运算170
9.4.1 BigInteger171
9.4.2 BigDecimal173
9.5 小结176
9.6 实践与练习176
第2篇 核心技术
第10章 接口、继承与多态178
视频讲解:23分钟
10.1 类的继承179
10.2 Object类182
10.3 对象类型的转换184
10.3.1 向上转型184
10.3.2 向下转型185
10.4 使用instanceof操作符判断
对象类型186
10.5 方法的重载188
10.6 多态191
10.7 抽象类与接口193
10.7.1 抽象类193
10.7.2 接口194
10.8 小结197
10.9 实践与练习197
第11章 类的高级特性198
视频讲解:23分钟
11.1 Java类包199
11.1.1 类名冲突199
11.1.2 完整的类路径199
11.1.3 创建包200
11.1.4 导入包201
11.2 final变量203
11.3 final方法206
11.4 final类207
11.5 内部类208
11.5.1 成员内部类208
11.5.2 局部内部类212
11.5.3 匿名内部类213
11.5.4 静态内部类214
11.5.5 内部类的继承215
11.6 小结215
11.7 实践与练习215
第12章 异常处理216
视频讲解:17分钟
12.1 异常概述217
12.2 处理程序异常错误217
12.2.1 错误218
12.2.2 捕捉异常218
12.3 Java常见异常220
12.4 自定义异常221
12.5 在方法中抛出异常222
12.5.1 使用throws关键字抛出异常222
12.5.2 使用throw关键字抛出异常223
12.6 运行时异常225
12.7 异常的使用原则226
12.8 小结226
12.9 实践与练习226
第13章 Swing程序设计227
视频讲解:1小时3分钟
13.1 Swing概述228
13.1.1 Swing特点228
13.1.2 Swing包228
13.1.3 常用Swing组件概述229
13.2 常用窗体229
13.2.1 JFrame窗体229
13.2.2 JDialog窗体231
13.3 标签组件与图标233
13.3.1 标签的使用233
13.3.2 图标的使用234
13.4 常用布局管理器236
13.4.1 绝对布局237
13.4.2 流布局管理器238
13.4.3 边界布局管理器239
13.4.4 网格布局管理器241
13.5 常用面板242
13.5.1 JPanel面板242
13.5.2 JScrollPane面板243
13.6 按钮组件244
13.6.1 提交按钮组件244
13.6.2 单选按钮组件246
13.6.3 复选框组件247
13.7 列表组件248
13.7.1 下拉列表框组件248
13.7.2 列表框组件250
13.8 文本组件252
13.8.1 文本框组件252
13.8.2 密码框组件253
13.8.3 文本域组件253
13.9 常用事件监听器254
13.9.1 监听事件简介255
13.9.2 动作事件监听器255
13.9.3 焦点事件监听器257
13.10 小结258
13.11 实践与练习258
第14章 集合类259
视频讲解:13分钟
14.1 集合类概述260
14.2 Collection接口260
14.3 List集合261
14.3.1 List接口261
14.3.2 List接口的实现类262
14.4 Set集合263
14.5 Map集合266
14.5.1 Map接口266
14.5.2 Map接口的实现类267
14.6 小结269
14.7 实践与练习270
第15章 I/O(输入/输出)271
视频讲解:22分钟
15.1 流概述272
15.2 输入/输出流272
15.2.1 输入流272
15.2.2 输出流274
15.3 File类275
15.3.1 文件的创建与删除275
15.3.2 获取文件信息276
15.4 文件输入/输出流278
15.4.1 FileInputStream与FileOutputStream类278
15.4.2 FileReader和FileWriter类279
15.5 带缓存的输入/输出流282
15.5.1 BufferedInputStream与
BufferedOutputStream类282
15.5.2 BufferedReader与BufferedWriter类282
15.6 数据输入/输出流284
15.7 ZIP压缩输入/输出流285
15.7.1 压缩文件286
15.7.2 解压缩ZIP文件287
15.8 小结289
15.9 实践与练习289
第16章 反射290
视频讲解:22分钟
16.1 Class类与Java反射291
16.1.1 访问构造方法292
16.1.2 访问成员变量295
16.1.3 访问方法298
16.2 使用Annotation功能301
16.2.1 定义Annotation类型301
16.2.2 访问Annotation信息304
16.3 小结307
16.4 实践与练习307
第17章 枚举类型与泛型308
视频讲解:20分钟
17.1 枚举类型309
17.1.1 使用枚举类型设置常量309
17.1.2 深入了解枚举类型311
17.1.3 使用枚举类型的优势316
17.2 泛型316
17.2.1 回顾向上转型与向下转型317
17.2.2 定义泛型类318
17.2.3 泛型的常规用法319
17.2.4 泛型的高级用法322
17.2.5 泛型总结325
17.3 小结325
17.4 实践与练习325
第18章 多线程326
视频讲解:21分钟
18.1 线程简介327
18.2 实现线程的两种方式327
18.2.1 继承Thread类328
18.2.2 实现Runnable接口329
18.3 线程的生命周期331
18.4 操作线程的方法333
18.4.1 线程的休眠333
18.4.2 线程的加入335
18.4.3 线程的中断336
18.4.4 线程的礼让338
18.5 线程的优先级338
18.6 线程同步340
18.6.1 线程安全341
18.6.2 线程同步机制342
18.7 小结344
18.8 实践与练习345
第19章 网络通信346
视频讲解:24分钟
19.1 网络程序设计基础347
19.1.1 局域网与因特网347
19.1.2 网络协议347
19.1.3 端口和套接字348
19.2 TCP程序设计基础349
19.2.1 InetAddress类349
19.2.2 ServerSocket类350
19.2.3 TCP网络程序351
19.3 UDP程序设计基础355
19.3.1 DatagramPacket类355
19.3.2 DatagramSocket类356
19.3.3 UDP网络程序356
19.4 小结359
19.5 实践与练习360
第20章 数据库操作361
视频讲解:48分钟
20.1 数据库基础知识362
20.1.1 什么是数据库362
20.1.2 数据库的种类及功能363
20.1.3 SQL语言363
20.2 JDBC概述365
20.2.1 JDBC-ODBC桥365
20.2.2 JDBC技术366
20.2.3 JDBC驱动程序的类型366
20.3 JDBC中常用的类和接口366
20.3.1 Connection接口367
20.3.2 Statement接口367
20.3.3 PreparedStatement接口368
20.3.4 DriverManager类368
20.3.5 ResultSet接口368
20.4 数据库操作369
20.4.1 连接数据库370
20.4.2 向数据库发送SQL语句371
20.4.3 处理查询结果集371
20.4.4 顺序查询372
20.4.5 模糊查询373
20.4.6 预处理语句374
20.4.7 添加、修改、删除记录376
20.5 小结378
20.6 实践与练习378
第3篇 高级应用
第21章 Swing表格组件380
视频讲解:20分钟
21.1 利用JTable类直接创建表格381
21.1.1 创建表格381
21.1.2 定制表格383
21.1.3 操纵表格387
21.2 表格模型与表格389
21.2.1 利用表格模型创建表格389
21.2.2 维护表格模型391
21.3 提供行标题栏的表格393
21.4 小结398
21.5 实践与练习398
第22章 Swing树组件399
视频讲解:20分钟
22.1 简单的树400
22.2 处理选中节点事件401
22.3 遍历树节点404
22.4 定制树406
22.5 维护树模型408
22.6 处理展开节点事件410
22.7 小结412
22.8 实践与练习412
第23章 Swing其他高级组件413
视频讲解:41分钟
23.1 高级组件面板414
23.1.1 分割面板414
23.1.2 选项卡面板417
23.1.3 桌面面板和内部窗体419
23.2 菜单424
23.2.1 创建菜单栏424
23.2.2 创建弹出式菜单426
23.2.3 定制个性化菜单426
23.3 工具栏430
23.4 文件选择器432
23.4.1 文件选择对话框432
23.4.2 使用文件过滤器433
23.5 进度条435
23.6 系统托盘436
23.7 桌面集成控件437
23.8 小结438
23.9 实践与练习438
第24章 高级布局管理器439
视频讲解:32分钟
24.1 箱式布局管理器440
24.2 卡片布局管理器442
24.3 网格组布局管理器445
24.4 弹簧布局管理器451
24.4.1 使用弹簧布局管理器451
24.4.2 使用弹簧和支柱454
24.4.3 利用弹簧控制组件大小455
24.5 小结456
24.6 实践与练习456
第25章 高级事件处理457
视频讲解:23分钟
25.1 键盘事件458
25.2 鼠标事件460
25.3 窗体事件462
25.3.1 捕获窗体焦点变化事件462
25.3.2 捕获窗体状态变化事件463
25.3.3 捕获其他窗体事件465
25.4 选项事件467
25.5 表格模型事件468
25.6 小结471
25.7 实践与练习471
第26章 AWT绘图与音频播放472
视频讲解:36分钟
26.1 Java绘图473
26.1.1 Graphics473
26.1.2 Graphics2D473
26.2 绘制图形473
26.3 绘图颜色与笔画属性477
26.3.1 设置颜色477
26.3.2 笔画属性478
26.4 绘制文本479
26.4.1 设置字体480
26.4.2 显示文字480
26.5 绘制图片481
26.6 图像处理483
26.6.1 放大与缩小483
26.6.2 图像翻转485
26.6.3 图像旋转487
26.6.4 图像倾斜488
26.7 播放音频文件490
26.8 小结492
26.9 实践与练习492
第27章 打印技术493
视频讲解:13分钟
27.1 打印控制类494
27.2 “打印”对话框495
27.3 打印页面497
27.4 多页打印499
27.5 打印预览501
27.6 小结503
27.7 实践与练习503
第4篇 项目实战
第28章 企业进销存管理系统506
视频讲解:1小时18分钟
28.1 系统分析507
28.1.1 需求分析507
28.1.2 可行性分析507
28.1.3 编写项目计划书508
28.2 系统设计510
28.2.1 系统目标510
28.2.2 系统功能结构510
28.2.3 系统业务流程图511
28.2.4 系统编码规范512
28.3 开发环境513
28.4 数据库与数据表设计514
28.4.1 数据库分析514
28.4.2 创建数据库514
28.4.3 创建数据表515
28.5 创建项目519
28.6 系统文件夹组织结构520
28.7 公共类设计520
28.7.1 Item公共类520
28.7.2 数据模型公共类521
28.7.3 Dao公共类523
28.8 系统登录模块设计533
28.8.1 设计登录窗体534
28.8.2 “密码”文本框的回车事件535
28.8.3 “登录”按钮的事件处理535
28.9 系统主窗体设计536
28.9.1 设计菜单栏537
28.9.2 设计工具栏539
28.9.3 设计状态栏540
28.10 进货单模块设计541
28.10.1 设计进货单窗体542
28.10.2 添加进货商品542
28.10.3 进货统计544
28.10.4 商品入库545
28.11 销售单模块设计547
28.11.1 设计销售单窗体548
28.11.2 添加销售商品548
28.11.3 销售统计549
28.11.4 商品销售550
28.12 库存盘点模块设计551
28.12.1 设计库存盘点窗体552
28.12.2 读取库存商品552
28.12.3 统计损益数量554
28.13 数据库备份与恢复模块设计555
28.13.1 设计窗体555
28.13.2 文件浏览555
28.13.3 备份数据库556
28.13.4 恢复数据库557
28.14 运行项目558
28.15 系统打包发行559
28.16 开发常见问题与解决562
28.16.1 打包的JAR文件无法登录562
28.16.2 无法打开内部窗体562
28.16.3 “关于”界面被其他窗体覆盖563
28.16.4 打包JAR文件之后无法运行563
28.16.5 程序运行后没有出现闪屏界面563
28.17 小结564