第1章 初识Java语言 1
1.1 Java语言发展史及特点 1
1.1.1 Java语言简介 1
1.1.2 Java语言特点 3
1.2 Java开发环境的配置 5
1.2.1 JDK的安装 5
1.2.2 系统环境变量的设置 8
1.2.3 编译和执行程序命令用法 8
1.2.4 集成开发环境Eclipse介绍 10
1.3 Java应用程序示例 14
知识回顾 15
项目实训 16
第2章 Java语言入门必备 17
2.1 标识符和关键字 17
2.1.1 标识符 17
2.1.2 关键字 17
2.2 常量和变量 18
2.2.1 常量 18
2.2.2 变量 18
2.2.3 变量作用域 19
2.3 基本数据类型 20
2.3.1 4大类基本数据类型 20
2.3.2 数据类型转换 22
2.4 运算符和表达式 23
2.4.1 赋值运算符与赋值表达式 23
2.4.2 算术运算符与算术表达式 23
2.4.3 关系运算符与关系表达式 25
2.4.4 逻辑运算符与逻辑表达式 25
2.4.5 位运算符 26
2.4.6 移位运算符 26
2.4.7 条件运算符 28
2.4.8 运算符的优先级与结合性 28
2.5 控制语句 29
2.5.1 分支语句 29
2.5.2 循环语句 33
2.5.3 跳转语句 38
2.6 Java注释语句 39
2.7 数组 40
2.7.1 维数组 40
2.7.2 二维数组 42
2.7.3 数组使用举例 43
知识回顾 45
项目实训 46
第3章 面向对象程序设计(基础篇) 47
3.1 面向对象程序设计概述 47
3.1.1 面向过程程序设计 47
3.1.2 面向对象程序设计 48
3.1.3 面向对象方法的特征 48
3.2 类与对象 51
3.2.1 类的声明 51
3.2.2 类的实例对象及使用 54
3.3 构造方法 57
3.3.1 构造方法的定义与作用 57
3.3.2 构造方法的重载 58
3.3.3 构造方法的一些细节 60
3.4 this引用句柄 61
3.5 垃圾回收机制 64
3.5.1 finalize方法 64
3.5.2 System.gc的作用 64
3.6 方法中的参数传递 65
3.6.1 基本数据类型的参数传递 65
3.6.2 引用数据类型的参数传递 66
3.6.3 命令行参数 67
3.7 访问控制 68
3.7.1 Java中的访问控制 68
3.7.2 static关键字的使用 69
3.7.3 final关键字的使用 72
知识回顾 73
项目实训 73
第4章 面向对象程序设计(高级篇) 75
4.1 继承和多态性的概念 75
4.1.1 继承的概述 75
4.1.2 多态性的概述 77
4.2 继承机制 77
4.2.1 继承的定义 77
4.2.2 继承的传递性 81
4.2.3 类中属性的继承与隐藏 82
4.2.4 类中方法的继承、覆盖与重载 82
4.2.5 在子类中使用构造方法 87
4.3 多态性 89
4.3.1 多态性的体现 89
4.3.2 静态多态性 89
4.3.3 动态多态性 89
4.3.4 父类对象与子类对象间的指代使用和转化 90
4.4 抽象类 92
4.4.1 抽象类的定义 92
4.4.2 抽象类的使用 93
4.5 包与接口 98
4.5.1 Java中的包 98
4.5.2 Java中的接口 101
4.6 内部类 105
4.7 匿名类 106
知识回顾 107
项目实训 108
第5章 常用类和接口 111
5.1 字符串处理类 111
5.1.1 String类 111
5.1.2 SuingBuffer类 119
5.2 泛型 122
5.2.1 泛型类 122
5.2.2 泛型方法 124
5.2.3 通配类型参数 125
5.3 集合框架 126
5.3.1 Collection接口及操作 127
5.3.2 Set接口及其实现类 128
5.3.3 对象排序 131
5.3.4 List接口及实现类 134
5.3.5 Map接口及其实现类 137
5.3.6 集合的输出 141
5.3.7 集合的工具类Collections 144
5.4 时间日期类 146
5.4.1 Date类 146
5.4.2 Calendar类 147
5.4.3 DateFormat类 148
5.4.4 SimpleDateFormat类 149
5.5 Math类 150
5.5.1 Math类的属性和方法 150
5.5.2 Math类的应用示例 151
5.6 随机数处理类Random 152
5.7 系统类System和Runtime 152
5.7.1 System类 152
5.7.2 RunTime类 155
知识回顾 157
项目实训 157
第6章 Java异常处理 159
6.1 异常概述 159
6.1.1 Java的异常处理机制 160
6.1.2 Java中异常类的层次结构 161
6.2 异常处理 163
6.2.1 使用try和catch捕获和处理异常 163
6.2.2 使用throws子句声明异常 170
6.2.3 throw语句 171
6.2.4 使用异常处理语句的注意事项 172
6.3 自定义异常 173
知识回顾 175
项目实训 175
第7章 图形用户界面设计 177
7.1 GUI编程基础 177
7.1.1 AWT与Swing的关系 177
7.1.2 GUI元素的分类 178
7.2 常用容器类 179
7.2.1 项层容器类 179
7.2.2 中间容器类 181
7.3 布局管理器 184
7.3.1 FlowLayout 184
7.3.2 BorderLayout 185
7.3.3 GridLayout 187
7.3.4 CardLayout 189
7.3.5 BoxLayout 190
7.4 Java的GUI事件处理 194
7.4.1 事件处理的基本过程 194
7.4.2 常用的事件类及其监听者 197
7.5 多监听程序与事件适配器 199
7.5.1 窗口事件的处理 200
7.5.2 事件适配器 201
7.5.3 键盘事件的处理 202
7.5.4 鼠标事件的处理 203
知识回顾 206
项目实训 206
第8章 常用Swing组件 207
8.1 常用Swing组件介绍 207
8.1.1 标签 207
8.1.2 文本组件 208
8.1.3 按钮组件 211
8.1.4 组合框 218
8.1.5 列表框 220
8.1.6 表格 222
8.2 菜单组件 224
8.2.1 菜单组件概述 224
8.2.2 下拉式菜单 225
8.2.3 弹出式菜单 228
8.3 对话框 229
8.3.1 Swing中的JDialog 229
8.3.2 标准对话框 230
8.3.3 文件对话框 233
知识回顾 235
项目实训 235
第9章 输入输出流 237
9.1 文件和目录的操作 237
9.2 输入输出流概述 240
9.2.1 流的基本概念 240
9.2.2 流类的层次结构 240
9.2.3 流类的基本用法 242
9.3 常用流类 243
9.3.1 字节输入流 243
9.3.2 字节输出流 246
9.3.3 字符输入流 251
9.3.4 字符输出流 255
9.3.5 流的转换 258
9.4 随机文件访问类 260
9.5 对象序列化 261
9.5.1 序列化的概念 261
9.5.2 ObjectOutputStream类 262
9.5.3 ObjectInputStream类 263
9.5.4 序列化示例 263
9.5.5 定制序列化 265
知识回顾 265
项目实训 266
第10章 多线程编程 267
10.1 多线程概述 267
10.1.1 线程基本概念 267
10.1.2 线程的运行机制 267
10.2 线程的创建和启动 269
10.2.1 线程的创建 269
10.2.2 线程的启动 272
10.3 线程状态和转换 274
10.4 线程控制 275
10.4.1 线程睡眠 275
10.4.2 线程让步 277
10.4.3 线程间协作 278
10.4.4 后台线程 280
10.4.5 线程优先级 281
10.5 线程同步处理 281
10.5.1 多线程引发的问题 282
10.5.2 同步代码块 283
10.5.3 同步方法 286
10.5.4 线程间通信 288
10.5.5 死锁 291
知识回顾 293
项目实训 293
第11章 数据库编程 295
11.1 数据库基础 295
11.1.1 关系数据库 295
11.1.2 数据的定义 295
11.1.3 数据的操纵语言 296
11.1.4 数据查询语言 297
11.2 JDBC基础 297
11.2.1 JDBC简介 297
11.2.2 JDBC驱动类型 299
11.3 使用JDBC访问数据库 300
11.3.1 JDBC使用基本流程 300
11.3.2 数据库驱动程序的加载 301
11.3.3 连接数据库 302
11.3.4 数据库的操纵 304
11.3.5 操作结果的处理与访问 307
11.3.6 JDBC的关闭操作 309
11.4 数据库编程实例 310
11.4.1 数据连接的创建 310
11.4.2 数据库表的创建 312
11.4.3 添加数据信息 313
11.4.4 数据信息的修改 315
11.4.5 数据信息的删除 316
11.4.6 数据信息的查询 317
11.5 事务的处理 318
知识回顾 321
项目实训 321
第12章 网络编程技术 323
12.1 网络通信基础 323
12.1.1 基本概念 323
12.1.2 通信协议 324
12.1.3 Java网络编程技术 325
12.2 URL程序设计 325
12.2.1 URL 326
12.2.2 URLConnection 327
12.2.3 InetAddress 329
12.3 TCP程序设计 330
12.3.1 网络套接字 331
12.3.2 Socket 331
12.3.3 ServerSocket 333
12.3.4 TCP编程实例 335
12.4 UDP程序设计 339
12.4.1 数据报通信 339
12.4.2 DatagrarnPacket 340
12.4.3 DatagramSocket 341
12.4.4 MulticastSocket 347
知识回顾 353
项目实训 354
第13章 进销存管理系统 355
13.1 进销存管理系统概述 355
13.1.1 开发背景 355
13.1.2 需求描述 355
13.2 系统设计 356
13.2.1 系统目标 356
13.2.2 系统功能结构 356
13.2.3 开发环境 357
13.2.4 文件夹组织结构 357
13.2.5 数据库设计 357
13.3 系统实现 360
13.3.1 主窗体设计 360
13.3.2 基础信息模块设计 360
13.3.3 进货管理模块设计 361
13.3.4 查询统计模块设计 362
13.3.5 库存管理模块设计 363
13.3.6 Java类的设计 363
13.4 系统打包与发布 396
知识回顾 397
第14章 图书馆管理系统 399
14.1 系统概述 399
14.1.1 项目背景 399
14.1.2 业务描述 399
14.2 系统设计 400
14.2.1 系统框架 400
14.2.2 角色分析 401
14.2.3 数据库设计 401
14.3 系统实现 403
14.3.1 代码组织 403
14.3.2 系统界面 405
14.3.3 代码设计 407
14.3.4 配置文件 446
14.3.5 图片文件 447
14.4 系统发布 448
14.4.1 运行环境 448
14.4.2 数据源配置 448
14.4.3 系统运行 449
14.4.4 系统部署 450
知识回顾 451
附录A程序编码规范及常见问题 453
A.1 命名规范 453
A.2 注释 454
A.2.1 类注释 455
A.2.2 方法注释 455
A.2.3 语句块注释 455
A.2.4 尾端注释 456
A.2.5 行末注释 456
A.2.6 文档注释 456
A.3 常见Java不规范代码 457
A.3.1 在Eclipse中格式化源代码并管理import语句 457
A.3.2 避免在方法中出现多个return语句(退出点) 457
A.3.3 简化if-else方法 458
A.3.4 在代码块周围使用大括号 458
A.3.5 把方法的参数声明为final类型 458
A.3.6 把多个if语句合并成一个 459
A.3.7 避免重复使用同样的字符串,创建一个常量吧 459
A.4 常见问题汇总 459
A.4.1 字符串连接误用 459
A.4.2 错误使用StringBuffer 460
A.4.3 测试字符串相等性 460
A.4.4 数字转换成字符串 461
A.4.5 利用不可变对象(Immutable) 461
A.4.6 未指定字符编码 461
A.4.7 未对数据流进行缓存 461
A.4.8 不必要的初始化 462
A.4.9 用数组来描述一个结构 462