第1章 Java程序设计概述 1
1.1 Java程序平台 1
1.2 Java的特性 1
1.3 Java程序设计环境 3
1.3.1 下载、安装和了解JDK 3
1.3.2 集成开发环境Eclipse 5
1.4 Java应用程序 6
1.4.1 Java应用程序的编写 6
1.4.2 命令行方式下的编译和运行 7
1.4.3 使用Eclipse开发Java程序 9
1.5 习题 10
1.6 实验指导 11
1.7 本章思维导图 12
第2章 Java语言基础 13
2.1 标识符和关键字 13
2.2 基本数据类型与变量、常量 14
2.2.1 Java中的整数类型 14
2.2.2 Java中的字符类型 15
2.2.3 浮点类型 15
2.2.4 布尔类型 15
2.2.5 符号常量 16
2.3 运算符 16
2.3.1 算术运算符 16
2.3.2 关系运算符和逻辑运算符 18
2.3.3 位运算符 19
2.3.4 赋值运算符 21
2.3.5 运算符的优先级与结合性 22
2.4 表达式的类型转换 23
2.4.1 数据类型自动转换的规则 23
2.4.2 强制类型转换 24
2.5 流程控制 24
2.5.1 if语句 24
2.5.2 switch语句 26
2.5.3 while循环语句 27
2.5.4 for循环语句 28
2.5.5 do-while循环语句 29
2.5.6 break语句 30
2.5.7 循环的嵌套 31
2.6 方法 33
2.6.1 方法的定义 33
2.6.2 方法的重载 33
2.7 综合实践——简易算术计算器 34
2.8 习题 36
2.9 实验指导 38
2.10 本章思维导图 39
第3章 数组 40
3.1 声明数组 40
3.2 创建数组对象 40
3.3 使用数组 43
3.3.1 数组元素的引用 43
3.3.2 Java方法中的不定长参数与数组 46
3.4 多维数组 47
3.4.1 二维数组的声明和创建 47
3.4.2 不规则二维数组 48
3.4.3 二维数组元素的引用 48
3.5 Java中的for each循环 49
3.6 Arrays类 50
3.6.1 sort()方法 50
3.6.2 copyOf()方法 50
3.7 综合实践——学生成绩查询系统 51
3.7.1 查询系统的数据结构 51
3.7.2 模块化设计 52
3.7.3 控制台命令的读取和控制run() 52
3.7.4 查询某人某门课成绩get() 53
3.8 习题 54
3.9 实验指导 55
3.10 探究与实践——两人对弈的五子棋游戏 56
3.11 本章思维导图 58
第4章 封装与类 59
4.1 封装的意义 59
4.2 定义类 60
4.2.1 面向对象的分析 60
4.2.2 使用class定义类 60
4.3 对象和引用 64
4.3.1 对象和引用的关系 64
4.3.2 this引用 65
4.4 方法的参数传递 65
4.5 关于static 68
4.5.1 static成员 68
4.5.2 变量的使用规则 69
4.5.3 static代码块 70
4.5.4 类常量的定义 71
4.6 包 71
4.6.1 包的创建 72
4.6.2 类的导入 72
4.6.3 含包定义的类的编译及执行 73
4.6.4 classpath环境变量的设置 74
4.6.5 Eclipse下创建package 75
4.7 综合实践——酒店前台客房管理系统 75
4.7.1 类的设计——组合关系 76
4.7.2 客房编号的处理方法 77
4.7.3 Room类设计 78
4.7.4 Hotel类设计 79
4.7.5 客户端Client类实现 80
4.8 习题 81
4.9 实验指导 84
4.10 本章思维导图 86
第5章 类的继承 87
5.1 继承 87
5.1.1 继承的概念 87
5.1.2 继承的实现 88
5.1.3 类成员的访问控制 90
5.2 重写父类方法 92
5.2.1 重写及其意义 92
5.2.2 Object类与重写toString()方法 93
5.2.3 调用父类被重写的方法 95
5.2.4 Object类的clone()方法与深、浅复制 95
5.3 子类对象的构造 99
5.3.1 子类对象的构造过程 99
5.3.2 super与this调用构造方法 100
5.4 Java修饰符 101
5.4.1 final修饰符 101
5.4.2 Java修饰符之间的关系 103
5.5 继承和组合 104
5.5.1 继承复用 104
5.5.2 组合复用 105
5.6 习题 105
5.7 实验指导 106
5.8 本章思维导图 109
第6章 多态性 110
6.1 多态 110
6.1.1 多态性 111
6.1.2 静态绑定和动态绑定 112
6.1.3 instanceof运算符 112
6.2 抽象类 114
6.2.1 抽象类及抽象方法的定义 114
6.2.2 为什么设计抽象类 115
6.2.3 开闭原则 115
6.3 接口 118
6.3.1 接口的定义和实现 118
6.3.2 接口与抽象类的区别 120
6.4 面向接口的编程 122
6.4.1 案例分析 122
6.4.2 面向接口编程的代码组织 124
6.5 综合实践——格式化输出学生对象数据 126
6.5.1 系统架构 126
6.5.2 面向接口编程的代码 127
6.6 习题 130
6.7 实验指导 132
6.8 思维导图 134
6.8.1 本章思维导图 134
6.8.2 面向对象部分思维导图 135
第7章 常用工具类 136
7.1 字符串处理类 136
7.1.1 Java中String对象的管理 136
7.1.2 String类的常用方法 140
7.1.3 StringBuilder和StringBuffer类 143
7.2 正则表达式 146
7.2.1 正则表达式的语法 146
7.2.2 String类中操作正则表达式的方法 148
7.3 包装类 148
7.3.1 Integer类 149
7.3.2 自动封箱和解封 150
7.4 日期类 152
7.4.1 Date类 152
7.4.2 Calendar类 152
7.4.3 SimpleDateFormat类 154
7.4.4 阅读API文档 155
7.5 习题 156
7.6 实验指导 157
7.7 本章思维导图 159
第8章 集合 160
8.1 Java中的集合框架 160
8.1.1 集合框架的常用部分 160
8.1.2 迭代器Iterator接口 161
8.2 List及其实现类 163
8.2.1 List接口 163
8.2.2 ArrayList 164
8.2.3 LinkedList 166
8.3 Set及其实现类 167
8.3.1 Set接口 167
8.3.2 HashSet 167
8.3.3 TreeSet 170
8.4 Map及其实现类 175
8.4.1 Map接口 175
8.4.2 HashMap 176
8.4.3 Hashtable及其子类Properties 177
8.5 泛型 178
8.5.1 泛型的意义 179
8.5.2 认识和使用泛型 179
8.6 Collections集合工具类 180
8.6.1 List的增补功能 180
8.6.2 多线程封装 181
8.7 回首Java集合框架 182
8.8 综合实践——控制台版考试系统 183
8.8.1 类的设计 183
8.8.2 代码 185
8.9 习题 188
8.10 实验指导 190
8.11 本章思维导图 193
第9章 异常处理 194
9.1 Java异常体系 194
9.2 异常的捕获和处理 196
9.2.1 try-catch-finally语句 196
9.2.2 try-catch-finally语句的执行过程 199
9.3 使用throws抛出异常 200
9.4 自定义异常类 201
9.4.1 自定义异常类的方法 201
9.4.2 throw抛出异常 202
9.4.3 异常处理的5个关键字 203
9.5 综合实践——用户管理系统及其异常类设计 203
9.5.1 系统设计 203
9.5.2 自定义异常类 204
9.5.3 UserDaoForMap类 205
9.5.4 Application类 205
9.5.5 Test类 206
9.6 习题 207
9.7 实验指导 208
9.8 本章思维导图 210
第10章 图形用户界面与事件处理 211
10.1 AWT组件及应用 211
10.1.1 AWT和Swing概述 211
10.1.2 AWT组成 212
10.1.3 AWT的容器 212
10.1.4 布局管理器 214
10.2 事件处理 217
10.2.1 事件处理的原理 217
10.2.2 利用成员内部类实现事件监听 219
10.2.3 利用匿名内部类实现事件监听 220
10.2.4 适配器模式实现事件监听 221
10.2.5 实现计算器的功能部分 222
10.3 Swing组件 223
10.4 综合实践——用户管理系统与常用Swing组件的应用 224
10.4.1 主界面与Swing组件的应用 224
10.4.2 注册界面与Swing组件的应用 229
10.4.3 浏览用户界面与JTable组件的应用 234
10.5 习题 238
10.6 实验指导 238
10.7 本章思维导图 240
第11章 多线程 241
11.1 线程的概念 241
11.2 线程的创建和执行 242
11.2.1 继承Thread类创建线程 242
11.2.2 实现Runnable接口创建线程 243
11.3 线程的状态与生命周期 245
11.3.1 新建和就绪状态 245
11.3.2 运行状态 245
11.3.3 阻塞状态 246
11.3.4 死亡状态 246
11.4 线程优先级与线程调度策略 246
11.5 线程同步 250
11.5.1 数据共享问题 250
11.5.2 同步和锁机制 250
11.5.3 同步代码块 251
11.5.4 同步方法 254
11.5.5 线程安全的集合类 256
11.6 线程间的通信 258
11.6.1 wait()和notify ()方法 258
11.6.2 消费者和生产者模型 261
11.6.3 使用BlockingQueue控制线程通信 265
11.7 习题 266
11.8 实验指导 268
11.9 本章思维导图 269
第12章 输入/输出流 270
12.1 Java流的类层次结构 270
12.2 文件 272
12.2.1 File类 272
12.2.2 RandomAccessFile类 274
12.3 字节流 278
12.3.1 抽象类InputStream和OutputStream 278
12.3.2 文件流FileInputStream和FileOutputStream 279
12.3.3 缓冲流BufferedInputStream和BufferedOutputStream 280
12.3.4 数据过滤流DataInputStream和DataOutputStream 282
12.3.5 打印流PrintStream 284
12.3.6 序列化接口Serializable与对象流ObjectInputStream和ObjectOutputStream 285
12.3.7 字节数组流ByteArrayInputStream和ByteArrayOutputStream 287
12.4 字符流 288
12.4.1 抽象类Reader和Writer 289
12.4.2 转换流InputStreamReader和OutputStream Writer 289
12.4.3 FileReader和FileWriter 289
12.4.4 BufferedReader类 293
12.4.5 PrintWriter类 293
12.5 输入/输出流汇总 295
12.6 习题 297
12.7 实验指导 299
12.8 本章思维导图 300
第13章 数据库访问技术 301
13.1 MySQL数据库与SQL语法 301
13.1.1 MySQL数据库的安装 301
13.1.2 MySQL数据库的常用命令 304
13.1.3 SQL语句 307
13.2 JDBC的体系结构和JDBC驱动程序的实现方式 309
13.2.1 JDBC的体系结构 309
13.2.2 JDBC驱动程序的实现方式 309
13.3 建立JDBC数据库连接 310
13.3.1 JDBC API的主要类和接口 311
13.3.2 连接数据库 311
13.4 使用JDBC访问数据库 315
13.4.1 Statement与数据表的增、删、改 315
13.4.2 PreparedStatement与数据表的增、删、改 318
13.4.3 数据表的查询与ResultSet 319
13.5 综合实践——数据库访问的开发模式 324
13.5.1 基于数据库存储的用户管理系统 325
13.5.2 业务层——封装DAO中的方法 326
13.5.3 应用层——调用业务层方法完成系统功能 327
13.6 习题 329
13.7 实验指导 329
13.8 探究与实践——用户管理系统的权限管理 331
13.9 本章思维导图 333
参考文献 334