第1篇 基础篇
第1章 Java开发前奏16
1.1 Java简介17
1.1.1 什么是Java语言17
1.1.2 与其他语言相比Java的优势17
1.1.3 计算机语言中Java
1.1.3 近几年的排行18
1.1.4 Java的发展史18
1.1.5 Java成功案例19
1.2 Java特性20
1.2.1 Java的应用领域20
1.2.2 Java语法的特征21
1.3 怎么学Java22
1.3.1 Java程序员的成长之路22
1.3.2 如何学好Java23
1.4 本章小结23
第2章 搭建Java开发环境24
2.1 搭建Java开发环境25
2.1.1 下载JDK25
2.1.2 安装JDK27
2.1.3 Windows系统下配置
2.1.3 和测试JDK27
2.2 Java程序的开发过程29
2.3 一个简单的Java程序30
2.3.1 构建Java程序30
2.3.2 编译和运行Java程序31
2.3.3 使用Java核心API文档31
2.4 实战练习32
2.4.1 下载JRE32
2.4.2 将JDK安装到D盘33
2.4.3 编写程序输出小猪脸图像33
2.5 本章小结34
第3章 扎实Java语言基本语法35
3.1 使用常量与变量36
3.1.1 常量的概念及使用36
3.1.2 变量的概念及命名规则37
3.1.3 变量的有效范围38
3.2 认识基本的数据类型41
3.2.1 整数类型41
3.2.2 浮点类型43
3.2.3 字符类型43
3.2.4 布尔类型44
3.2.5 基本数据类型间的转换44
3.3 熟练运用Java运算符45
3.3.1 赋值运算符46
3.3.2 算术运算符46
3.3.3 关系运算符47
3.3.4 逻辑运算符48
3.3.5 位运算符50
3.3.6 其他运算符53
3.3.7 运算符的优先级别及结合性55
3.3.8 情景应用一:加密可以这样3.3.8 简单55
3.3.9 情景应用二:位运算实现
3.3.9 两个变量值的互换56
3.4 了解Java标识符与关键字56
3.4.1 标识符57
3.4.2 关键字57
3.5 编码规范57
3.5.1 Java命名规范58
3.5.2 代码编写规则58
3.6 Java程序的注释59
3.6.1 单行注释59
3.6.2 使用多行注释59
3.6.3 文档注释的使用60
3.7 实战练习60
3.7.1 获取字符的unicode编码60
3.7.2 计算长方形的周长60
3.7.3 类型转换实例61
3.8 本章小结62
第1篇 基础篇
第1章 Java开发前奏16
1.1 Java简介17
1.1.1 什么是Java语言17
1.1.2 与其他语言相比Java的优势17
1.1.3 计算机语言中Java
1.1.3 近几年的排行18
1.1.4 Java的发展史18
1.1.5 Java成功案例19
1.2 Java特性20
1.2.1 Java的应用领域20
1.2.2 Java语法的特征21
1.3 怎么学Java22
1.3.1 Java程序员的成长之路22
1.3.2 如何学好Java23
1.4 本章小结23
第2章 搭建Java开发环境24
2.1 搭建Java开发环境25
2.1.1 下载JDK25
2.1.2 安装JDK27
2.1.3 Windows系统下配置
2.1.3 和测试JDK27
2.2 Java程序的开发过程29
2.3 一个简单的Java程序30
2.3.1 构建Java程序30
2.3.2 编译和运行Java程序31
2.3.3 使用Java核心API文档31
2.4 实战练习32
2.4.1 下载JRE32
2.4.2 将JDK安装到D盘33
2.4.3 编写程序输出小猪脸图像33
2.5 本章小结34
第3章 扎实Java语言基本语法35
3.1 使用常量与变量36
3.1.1 常量的概念及使用36
3.1.2 变量的概念及命名规则37
3.1.3 变量的有效范围38
3.2 认识基本的数据类型41
3.2.1 整数类型41
3.2.2 浮点类型43
3.2.3 字符类型43
3.2.4 布尔类型44
3.2.5 基本数据类型间的转换44
3.3 熟练运用Java运算符45
3.3.1 赋值运算符46
3.3.2 算术运算符46
3.3.3 关系运算符47
3.3.4 逻辑运算符48
3.3.5 位运算符50
3.3.6 其他运算符53
3.3.7 运算符的优先级别及结合性55
3.3.8 情景应用一:加密可以这样3.3.8 简单55
3.3.9 情景应用二:位运算实现
3.3.9 两个变量值的互换56
3.4 了解Java标识符与关键字56
3.4.1 标识符57
3.4.2 关键字57
3.5 编码规范57
3.5.1 Java命名规范58
3.5.2 代码编写规则58
3.6 Java程序的注释59
3.6.1 单行注释59
3.6.2 使用多行注释59
3.6.3 文档注释的使用60
3.7 实战练习60
3.7.1 获取字符的unicode编码60
3.7.2 计算长方形的周长60
3.7.3 类型转换实例61
3.8 本章小结62
第4章 掌握算法和流程控制63
4.1 认识算法64
4.1.1 什么是算法64
4.1.2 算法的描述方法64
4.2 运用分支语句65
4.2.1 简单的if条件语句65
4.2.2 if-else条件语句66
4.2.3 if-else-if多分支语句68
4.2.4 switch多分支语句69
4.2.5 if语句和switch语句
4.5.1 的区别72
4.2.6 情景应用一:根据消费
4.2.6 金额计算折扣73
4.2.7 情景应用二:判断某一年
4.2.7 是否为闰年74
4.3 学习循环语句74
4.3.1 for循环语句74
4.3.2 while循环语句76
4.3.3 do-while循环语句78
4.3.4 foreach语句80
4.3.5 各循环语句间的区别81
4.4 学习跳转语句81
4.4.1 break跳转语句81
4.4.2 continue跳转语句82
4.4.3 return跳转语句82
4.5 实战练习83
4.5.1 判断用户输入月份所属
4.5.1 的季节83
4.5.2 输出乘法表83
4.5.3 计算阶乘84
4.6 本章小结84
第5章 使用Eclipse开发工具85
5.1 为什么要使用Eclipse
5.1 开发工具86
5.2 Eclipse的工作台86
5.2.1 Eclipse工作台概述86
5.2.2 透视图87
5.2.3 编辑器88
5.2.4 熟悉Eclipse的菜单栏
和工具栏89
5.3 怎样编写Java程序90
5.3.1 新建Java项目90
5.3.2 新建Java类91
5.3.3 编写Java代码93
5.3.4 运行程序94
5.3.5 保存并关闭Java项目94
5.4 探秘Eclipse资源管理95
5.4.1 导入Java类95
5.4.2 导入Java项目96
5.4.3 导出Java项目97
5.5 本章小结98
第6章 探秘面向对象程序设计99
6.1 什么是面向对象程序设计100
6.1.1 面向对象程序设计的概述100
6.1.2 面向对象程序设计的特点101
6.2 解密类和对象102
6.2.1 定义类103
6.2.2 成员变量和局部变量104
6.2.3 构造方法的概念及用途105
6.2.4 创建对象106
6.2.5 使用对象107
6.2.6 销毁对象108
6.3 使用包108
6.3.1 包的概念108
6.3.2 创建包108
6.3.3 使用包中的类109
6.4 了解Java中的继承关系110
6.4.1 继承的概念110
6.4.2 创建子类110
6.4.3 继承的使用原则111
6.4.4 使用this关键字112
6.4.5 使用super关键字112
6.5 认识多态技术113
6.5.1 方法的重载114
6.5.2 方法的覆盖115
6.6 抽象类116
6.7 final类与final方法119
6.7.1 final类119
6.7.2 final方法120
6.8 掌握Java中的接口120
6.8.1 定义接口121
6.8.2 实现接口121
6.9 情景应用123
6.9.1 情景应用一:定义不能
6.9.1 重写的方法123
6.9.2 情景应用二:温度转换124
6.10 实战练习125
6.10.1 定义员工类125
6.10.2 多态方式计算图像面积125
6.10.3 求解汉诺塔问题126
6.11 本章小结126
第7章 初探数组127
7.1 一维数组128
7.1.1 声明一维数组128
7.1.2 创建一维数组128
7.1.3 初始化一维数组130
7.1.4 使用一维数组131
7.2 二维数组133
7.2.1 声明二维数组133
7.2.2 创建二维数组133
7.2.3 初始化二维数组135
7.2.4 使用二维数组135
7.3 操作数组136
7.3.1 复制数组137
7.3.2 排序数组138
7.3.3 比较数组139
7.3.4 搜索数组140
7.3.5 填充数组141
7.3.6 传递数组142
7.4 实战练习143
7.4.1 使用冒泡排序法对数组
7.4.1 进行排序143
7.4.2 将二维数组中的行列互换144
7.5 本章小结144
第2篇 核心篇
第8章 字符串处理146
8.1 初识字符串147
8.1.1 字符串常量147
8.1.2 声明字符串变量147
8.1.3 创建字符串147
8.2 连接字符串149
8.2.1 字符串与字符串的连接149
8.2.2 字符串与其他类型数据的
2010 连接150
8.3 字符串操作151
8.3.1 比较字符串152
8.3.2 获取字符串的长度154
8.3.3 字符串的大小写转换154
8.3.4 查找字符串155
8.3.5 获取字符串的子字符串157
8.3.6 替换或去除字符串中的空格157
8.3.7 分割字符串158
8.4 格式化字符串159
8.4.1 常规类型的格式化159
8.4.2 日期和时间字符串格式化161
8.4.3 情景应用一:格式化
8.4.3 当前日期165
8.4.4 情景应用二:获取字符串中
8.4.4 的汉字个数166
8.5 使用StringBuilder类167
8.5.1 创建字符串生成器167
8.5.2 字符串生成器的应用168
8.6 使用正则表达式170
8.7 实战练习172
8.7.1 将数字格式化为货币字符串172
8.7.2 判断字符串中是否包含
8.7.2 有数字字符172
8.7.3 验证IP地址是否有效173
8.8 本章小结173
第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集合179
9.3.1 List接口的实现类180
9.3.2 List的用法180
9.3.3 情景应用:List集合传递
9.3.3 学生信息182
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.5.3 情景应用:实现省市级
9.5.3 联输出189
9.6 实战练习190
9.6.1 去除List集合中的重复值190
9.6.2 使用Map集合保存
9.6.2 电话信息191
9.7 本章小结191
第10章 使用异常处理机制192
10.1 什么是异常处理193
10.2 常见异常列表193
10.3 Java异常处理194
10.3.1 错误194
10.3.2 捕获异常195
10.4 内置异常类196
10.4.1 Error类197
10.4.2 Exception类197
10.5 自定义异常199
10.6 在方法中抛出异常200
10.6.1 使用throws关键字
9.5.3 抛出异常200
10.6.2 使用throw关键字
9.5.3 抛出异常201
10.7 异常处理使用原则202
10.8 实战练习202
10.8.1 自定义异常类202
10.8.2 使用try-catch语句
9.5.3 捕获异常203
10.8.3 捕捉求负数的公约数异常203
10.9 本章小结204
第11章 掌握Java的I/O技术205
11.1 Java的I/O处理方式206
11.1.1 I/O的基本模式206
11.1.2 Java提供的流类206
11.1.3 输入流207
11.1.4 输出流208
11.2 以byte为数据单位的流类208
11.2.1 InputStream类209
11.2.2 OutputStream类210
11.3 以char为数据单位的流类211
11.3.1 Reader类211
11.3.2 Writer212
11.4 常用I/O处理方式213
11.4.1 文件类214
11.4.2 文件的字节输入输出流216
11.4.3 文件的字符输入输出流218
11.4.4 带缓存的输入输出流221
11.4.5 对象序列化223
11.4.6 情景应用一:文件锁定225
11.4.7 情景应用二:将用户输入
11.4.7 的内容保存到文本文件225
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.6.3 获取磁盘中所有的文件名231
11.7 本章小结232
第12章 精通多线程技术233
12.1 线程概述234
12.1.1 进程234
12.1.2 线程234
12.2 线程的创建235
12.2.1 继承Thread类236
12.2.2 实现Runnable接口237
12.2.3 两种创建线程方式的比较239
12.3 线程的生命周期239
12.4 线程的优先级及执行顺序240
12.4.1 线程的优先级240
12.4.2 线程的执行顺序241
12.5 线程的控制244
12.5.1 线程的启动244
12.5.2 线程的挂起244
12.5.3 结束线程248
12.5.4 线程组249
12.5.5 情景应用一:使用守护
14.3.5 线程249
12.5.6 情景应用二:线程的插队250
12.6 线程的同步251
12.6.1 线程安全252
12.6.2 线程同步机制253
12.7 线程通信254
12.8 多线程产生死锁258
12.9 实战练习258
12.9.1 利用线程定时输出信息258
12.9.2 查看JVM中的线程名259
12.9.3 查看线程的状态259
12.10 本章小结260
第13章 枚举与泛型261
13.1 使用枚举类型262
13.1.1 使用枚举类型设置常量262
13.1.2 深入了解枚举类型264
13.1.3 使用枚举类型的优势269
13.1.4 情景应用一:遍历枚举
13.1.4 接口的元素269
13.1.5 情景应用二:选择合适
13.1.5 的枚举元素270
13.2 使用泛型270
13.2.1 回顾“向上转型”与
13.2.1 “向下转型”271
13.2.2 定义泛型类272
13.2.3 泛型的常规用法273
13.2.4 泛型的高级用法276
13.2.5 泛型总结278
13.3 实战练习278
13.3.1 判断枚举类型的值278
13.3.2 使用通配符定义泛型类279
13.4 本章小结279
第3篇 高级篇
第14章 Swing基础知识282
14.1 Swing概述283
14.1.1 Swing特点283
14.1.2 Swing包283
14.1.3 常用Swing组件概述284
14.2 常见窗体284
14.2.1 JFrame窗体284
14.2.2 JDialog窗体286
14.3 掌握基本组件287
14.3.1 标签组件288
14.3.2 按钮组件289
14.3.3 文本组件292
14.3.4 列表组件294
14.3.5 情景应用一:实现按钮
14.3.5 关键字描红297
14.3.6 情景应用二:鼠标经过
14.3.5 时按钮放大298
14.4 向窗体中添加容器299
14.4.1 JPanel面板的应用299
14.4.2 JScrollPane面板的应用300
14.4.3 分割面板的应用301
14.4.4 选项卡面板的应用303
14.5 选择合理的布局方式305
14.5.1 灵活指定组件位置的
14.3.5 绝对布局305
14.5.2 窗体默认的边界布局306
14.5.3 奇妙的网格布局307
14.5.4 按指定方向摆放组件
14.3.5 的流式布局308
14.6 常用的事件监听器309
14.6.1 事件监听器概述309
14.6.2 事件监听器310
14.6.3 动作事件(ActionEvent)
14.3.5 监听器311
14.6.4 焦点事件(FocusEvent)
14.3.5 监听器312
14.7 实战练习313
14.7.1 简单的计数器313
14.7.2 通过单选按钮选择
14.3.5 显示图片313
14.7.3 为文本域设置背景314
14.8 本章小结314
第15章 JDBC技术315
15.1 了解数据库基础知识316
15.1.1 生活中的数据库316
15.1.2 了解数据库的特点及分类316
15.2 JDBC技术317
15.2.1 什么是JDBC技术317
15.2.2 为什么要在项目中添加
14.3.5 数据库驱动317
15.3 认识JDBC中不可缺少
15.3 的类与接口318
15.3.1 管理数据库驱动类
14.3.5 DriverManager318
15.3.2 数据库连接接口
14.3.5 Connection318
15.3.3 发送SQL语句接口
14.3.5 Statement319
15.3.4 可执行动态SQL的接口
9.5.3 PreparedStatement319
15.3.5 查询结果集接口ResultSet320
15.4 操作数据库的步骤320
15.4.1 加载JDBC驱动程序321
15.4.2 创建数据库连接321
15.4.3 执行SQL语句322
15.4.4 获得查询结果323
15.4.5 关闭连接323
15.5 常见的数据操作324
15.5.1 添加数据324
15.5.2 修改数据325
15.5.3 删除数据326
15.5.4 查询数据326
15.5.5 使用预处理语句328
15.6 实战练习330
15.6.1 查询SQL Server数据表
14.3.5 中前三条数据330
15.6.2 查询编程词典9月份的
14.3.5 总销售量331
15.6.3 笛卡儿乘积查询332
15.7 本章小结332
第16章 Swing高级组件333
16.1 为窗体添加菜单334
16.1.1 创建菜单栏334
16.1.2 创建菜单334
16.1.3 创建菜单项335
16.1.4 创建弹出式菜单337
16.1.5 创建个性化菜单337
16.2 实现为窗体添加工具栏340
16.2.1 创建工具栏340
16.2.2 为工具栏添加工具按钮341
16.3 使用对话框342
16.3.1 打开本地文件的文件
14.3.5 对话框342
16.3.2 为用户提供信息对话框345
16.3.3 色彩斑斓的颜色选择
14.3.5 对话框346
16.3.4 实现确认操作的确认
14.3.5 对话框347
16.4 表格组件349
16.4.1 实现创建表格349
16.4.2 表格模型350
16.4.3 维护表格模型351
16.5 使用系统托盘354
16.5.1 实现获取系统托盘354
16.5.2 怎样为系统托盘添加图标355
16.5.3 添加弹出菜单355
16.6 实战练习357
16.6.1 明日版QQ界面设计357
16.6.2 设计选择日期的对话框357
16.6.3 在表格中显示销售记录358
16.7 本章小结359
第17章 GUI事件处理机制360
17.1 掌握窗体事件361
17.1.1 捕获窗体焦点变化事件361
17.1.2 捕获窗体状态变化事件362
17.1.3 捕获其他窗体事件363
17.1.4 情景应用一:创建总
14.3.5 显示在最上方的窗体365
17.1.5 情景应用二:创建内部
14.3.5 子窗体365
17.2 掌握鼠标操作366
17.2.1 鼠标事件监听器366
17.2.2 鼠标事件处理367
17.3 掌握键盘控制事件368
17.3.1 键盘事件监听器368
17.3.2 键盘事件处理369
17.4 选项事件371
17.5 表格模型事件372
17.6 实战练习375
17.6.1 定义只能输入整数或
14.3.5 小数的文本框375
17.6.2 设置文本对齐方式375
17.7 本章小结376
第18章 网络程序设计377
18.1 网络程序设计基础378
18.1.1 局域网和广域网378
18.1.2 网络协议378
18.2 端口与套接字379
18.2.1 端口379
18.2.2 套接字380
18.3 学习TCP编程原理380
18.3.1 什么是TCP协议380
18.3.2 掌握TCP编程的常用类381
18.3.3 如何编写TCP程序384
18.4 学习UDP编程原理385
18.4.1 什么是UDP协议386
18.4.2 掌握UDP编程的常用类386
18.4.3 如何编写UDP程序387
18.5 实战练习390
18.5.1 聊天室390
18.5.2 获取主机名、主机地址
14.3.5 和本机地址390
18.5.3 向客户机发送信息391
18.6 本章小结392
第4篇 实战篇
第19章 进销存管理系统394
19.1 需求分析395
19.1.1 需求分析395
19.1.2 可行性分析395
19.2 系统设计395
19.2.1 项目规划395
19.2.2 功能结构分析396
19.3 数据库设计396
19.3.1 E-R图396
19.3.2 数据表概要说明398
19.3.3 主要数据表的结构399
19.4 系统登录模块设计401
19.4.1 登录功能设计401
19.4.2 系统登录模块设计401
19.5 程序主界面的设计404
19.5.1 创建主窗口404
19.5.2 初始化程序主界面的
14.3.5 initialize()方法405
19.5.3 添加菜单和工具按钮
14.3.5 的方法406
19.5.4 创建Action对象的
14.3.5 addFrameAction()方法408
19.5.5 获取功能窗体的
14.3.5 getIFrame()方法410
19.6 基础信息模块设计410
19.6.1 商品信息管理模块设计410
19.6.2 商品添加功能设计411
19.6.3 设置组件布局位置的
19.6.3 setupComponent()方法414
19.6.4 商品修改与删除功能设计414
19.7 进货管理模块设计417
19.7.1 进货单管理功能设计417
19.7.2 初始化表格的
14.3.5 initTable()方法421
19.7.3 初始化商品下拉选择框的
14.3.5 initSpBox()方法421
19.7.4 初始化进货单窗体的
14.3.5 initTasks类422
19.7.5 初始化进货票号文本框
14.3.5 的initPiaoHao()方法423
19.8 销售管理模块设计423
19.8.1 销售单管理功能设计423
19.8.2 初始化销售单窗体的
14.3.5 initTasks类425
19.9 库存管理模块设计426
19.9.1 库存盘点功能设计426
19.9.2 库存价格调整功能设计429
19.10 查询统计模块设计430
19.10.1 销售排行功能设计430
19.10.2 执行销售排行功能的
14.3.5 事件监听器432
19.11 系统设置模块设计432
19.11.1 操作员管理432
19.11.2 权限管理435
19.12 数据库模块437
19.12.1 数据库连接437
19.12.2 获取用户信息的
14.3.5 getUser()方法438
19.12.3 添加商品信息的
14.3.5 addSp()方法439
19.12.4 获取所有商品信息的
14.3.5 getSpInfos()方法439
19.12.5 添加入库信息的
14.3.5 insertRukuInfo()方法440
19.12.6 获取最大入库编号的
14.3.5 getRuKuMainMaxId()
14.3.5 方法441
19.12.7 更新用户信息的
14.3.5 updateUser()方法442
19.13 本章小结442
第20章 企业内部通信系统443
20.1 系统分析444
20.1.1 需求分析444
20.1.2 可行性分析444
20.1.3 编写项目计划书445
20.2 系统设计447
20.2.1 系统目标447
20.2.2 系统功能结构447
20.2.3 数据库设计447
20.2.4 系统预览449
20.2.5 文件夹组织结构450
20.3 主窗体设计450
20.3.1 创建主窗体451
20.3.2 记录窗体位置454
20.4 公共模块设计455
20.4.1 数据库操作类455
20.4.2 系统工具类460
20.5 系统托盘模块设计464
20.5.1 系统托盘模块概述464
20.5.2 系统托盘模块技术分析464
20.5.3 系统托盘模块实现465
20.6 系统工具模块设计466
20.6.1 系统工具模块概述466
20.6.2 系统工具模块技术分析467
20.6.3 系统工具模块实现467
20.7 用户管理模块设计472
20.7.1 用户管理模块概述472
20.7.2 用户管理模块技术分析472
20.7.3 用户管理模块实现473
20.8 通信模块设计477
20.8.1 通信模块概述477
20.8.2 通信模块技术分析478
20.8.3 通信模块实现478
20.9 开发技巧与难点分析482
20.10 使用JDK 6新增的
20.10 系统托盘482
20.11 本章小结483
附录A 专业术语表484