第1章 Java入门 1
1.1 Java的平台无关性 1
1.1.1 平台与机器指令 1
1.1.2 C/C++程序依赖平台 2
1.1.3 虚拟机与平台 2
1.2 Java之父——James Gosling 3
1.3 Java的地位 3
1.3.1 网络地位 3
1.3.2 语言地位 3
1.3.3 需求地位 4
1.4 安装JDK 4
1.4.1 平台简介 4
1.4.2 安装Java SE平台 4
1.5 Java程序的开发步骤 5
1.6 一个简单的Java应用程序 6
1.6.1 编写源文件 6
1.6.2 编译 7
1.6.3 运行 8
1.7 上机实践 8
习题 10
第2章 Java应用程序的基本结构 12
2.1 问题的提出 12
2.2 简单的Circle类 13
2.3 使用Circle类创建对象 13
2.3.1 用类声明对象 14
2.3.2 为对象分配变量 14
2.3.3 使用对象 15
2.4 在应用程序中使用对象 15
2.5 Java应用程序的基本结构 16
2.6 在一个源文件中编写多个类 18
2.7 编程风格 19
2.7.1 Allmans风格 19
2.7.2 Kernighan风格 20
2.7.3 注释 20
2.8 上机实践 21
习题 22
第3章 标识符与简单数据类型 23
3.1 标识符与关键字 23
3.1.1 标识符 23
3.1.2 关键字 23
3.2 简单数据类型 24
3.2.1 逻辑类型 24
3.2.2 整数类型 24
3.2.3 字符类型 25
3.2.4 浮点类型 26
3.3 简单数据类型的级别与类型转换运算 27
3.4 从命令行窗口输入、输出数据 29
3.4.1 输入基本型数据 29
3.4.2 输出基本型数据 29
3.5 上机实践 30
习题 32
第4章 运算符、表达式与语句 33
4.1 运算符与表达式 33
4.1.1 算术运算符与算术表达式 33
4.1.2 自增,自减运算符 33
4.1.3 算术混合运算的精度 33
4.1.4 关系运算符与关系表达式 34
4.1.5 逻辑运算符与逻辑表达式 34
4.1.6 赋值运算符与赋值表达式 35
4.1.7 位运算符 35
4.1.8 instanceof运算符 36
4.1.9 运算符综述 36
4.2 语句概述 36
4.3 if条件分支语句 37
4.3.1 if语句 37
4.3.2 if-else语句 37
4.3.3 if-else if-else语句 38
4.4 switch开关语句 40
4.5 循环语句 42
4.5.1 for循环语句 42
4.5.2 while循环 43
4.5.3 do-while循环 43
4.6 break和continue语句 44
4.7 数组 45
4.7.1 声明数组 45
4.7.2 为数组分配元素 46
4.7.3 数组元素的使用 47
4.7.4 length的使用 47
4.7.5 数组的初始化 47
4.7.6 数组的引用 48
4.7.7 遍历数组 49
4.8 上机实践 50
习题 52
第5章 类与对象 53
5.1 面向对象的特性 53
5.2 类 54
5.2.1 类声明 54
5.2.2 类体 55
5.2.3 成员变量 55
5.2.4 方法 56
5.2.5 需要注意的问题 58
5.2.6 类的UML类图 58
5.3 构造方法与对象的创建 59
5.3.1 构造方法 59
5.3.2 创建对象 60
5.3.3 使用对象 62
5.3.4 对象的引用和实体 64
5.4 参数传值 65
5.4.1 传值机制 65
5.4.2 基本数据类型参数的传值 65
5.4.3 引用类型参数的传值 66
5.5 对象的组合 69
5.5.1 由矩形和圆组合而成的图形 69
5.5.2 关联关系和依赖关系的UML图 72
5.6 实例成员与类成员 72
5.6.1 实例变量和类变量的声明 72
5.6.2 实例变量和类变量的区别 73
5.6.3 实例方法和类方法的定义 75
5.6.4 实例方法和类方法的区别 75
5.7 方法重载与多态 76
5.8 this关键字 77
5.8.1 在构造方法中使用this 78
5.8.2 在实例方法中使用this 78
5.9 包 80
5.9.1 包语句 80
5.9.2 有包名的类的存储目录 80
5.9.3 运行有包名的主类 81
5.10 import语句 82
5.10.1 引入类库中的类 82
5.10.2 引入自定义包中的类 83
5.11 访问权限 85
5.11.1 何谓访问权限 85
5.11.2 私有变量和私有方法 86
5.11.3 共有变量和共有方法 87
5.11.4 友好变量和友好方法 87
5.11.5 受保护的成员变量和方法 88
5.11.6 public类与友好类 88
5.12 基本类型的类包装 89
5.12.1 Double和Float类 89
5.12.2 Byte、Short、Integer、Long类 89
5.12.3 Character类 89
5.13 可变参数 90
5.14 上机实践 91
习题 93
第6章 子类与继承 96
6.1 子类与父类 96
6.2 子类的继承性 97
6.2.1 子类和父类在同一包中的继承性 97
6.2.2 子类和父类不在同一包中的继承性 98
6.2.3 继承关系(Generalization)的UML图 98
6.3 成员变量的隐藏和方法重写 98
6.3.1 成员变量的隐藏 98
6.3.2 方法重写(Override) 98
6.4 super关键字 101
6.4.1 用super操作被隐藏的成员变量和方法 101
6.4.2 使用super调用父类的构造方法 103
6.5 final关键字 104
6.5.1 final类 104
6.5.2 final方法 104
6.5.3 常量 104
6.6 对象的上转型对象 105
6.7 继承与多态 107
6.8 abstract类和abstract方法 107
6.9 面向抽象编程 109
6.10 开-闭原则 111
6.11 上机实践 112
习题 114
第7章 接口与实现 116
7.1 接口 116
7.2 实现接口 117
7.3 理解接口 119
7.4 接口的UML图 119
7.5 接口回调 120
7.6 接口与多态 121
7.7 接口变量做参数 122
7.8 abstract类与接口的比较 123
7.9 面向接口编程 124
7.10 上机实践 127
习题 128
第8章 内部类与异常类 130
8.1 内部类 130
8.2 匿名类 131
8.2.1 和子类有关的匿名类 131
8.2.2 和接口有关的匿名类 133
8.3 异常类 134
8.3.1 try-catch语句 134
8.3.2 自定义异常类 135
8.3.3 finally子语句 137
8.4 断言 138
8.5 上机实践 139
习题 141
第9章 常用实用类 143
9.1 String类 143
9.1.1 构造字符串对象 143
9.1.2 String类的常用方法 144
9.1.3 字符串与基本数据的相互转化 148
9.1.4 对象的字符串表示 149
9.1.5 字符串与字符、字节数组 150
9.1.6 正则表达式及字符串的替换与分解 152
9.2 StringBuffer类 156
9.2.1 StringBuffer对象的创建 156
9.2.2 StringBuffer类的常用方法 157
9.3 StringTokenizer类 158
9.4 Date类 159
9.4.1 构造Date对象 160
9.4.2 日期格式化 160
9.5 Calendar类 162
9.6 Math和BigInteger类 165
9.6.1 Math类 165
9.6.2 BigInteger类 165
9.7 DecimalFormat类 166
9.7.1 格式化数字 166
9.7.2 将格式化字符串转化为数字 168
9.8 Pattern与Match类 169
9.8.1 模式对象 169
9.8.2 匹配对象 170
9.9 Scanner类 171
9.10 上机实践 173
习题 174
第10章 输入输出流 177
10.1 File类 177
10.1.1 文件的属性 178
10.1.2 目录 179
10.1.3 文件的创建与删除 180
10.1.4 运行可执行文件 180
10.2 字节流与字符流 181
10.2.1 InputStream类与OutputStream类 181
10.2.2 Reader类与Writer类 182
10.2.3 关闭流 182
10.3 文件字节流 182
10.3.1 文件字节输入流 183
10.3.2 文件字节输出流 184
10.4 文件字符流 185
10.5 缓冲流 186
10.6 随机流 187
10.7 数组流 190
10.8 数据流 192
10.9 对象流 194
10.10 序列化与对象克隆 196
10.11 文件锁 197
10.12 使用Scanner解析文件 199
10.13 上机实践 201
习题 203
第11章 组件及事件处理 204
11.1 Java Swing概述 204
11.2 窗口 205
11.2.1 JFrame常用方法 205
11.2.2 菜单条、菜单、菜单项 206
11.3 常用组件与布局 208
11.3.1 常用组件 208
11.3.2 常用容器 210
11.3.3 常用布局 211
11.3.4 选项卡窗格 214
11.4 处理事件 216
11.4.1 事件处理模式 216
11.4.2 ActionEvent事件 217
11.4.3 ItemEvent事件 220
11.4.4 DocumentEvent事件 223
11.4.5 MouseEvent事件 225
11.4.6 焦点事件 229
11.4.7 键盘事件 229
11.4.8 匿名类实例或窗口做监视器 232
11.4.9 事件总结 234
11.5 使用MVC结构 234
11.6 对话框 237
11.6.1 消息对话框 237
11.6.2 输入对话框 239
11.6.3 确认对话框 240
11.6.4 颜色对话框 242
11.6.5 文件对话框 243
11.6.6 自定义对话框 245
11.7 发布GUI程序 247
11.8 上机实践 248
习题 251
第12章 Java多线程机制 253
12.1 进程与线程 253
12.1.1 操作系统与进程 253
12.1.2 进程与线程 253
12.2 Java中的线程 254
12.2.1 Java的多线程机制 254
12.2.2 线程的状态与生命周期 255
12.2.3 线程调度与优先级 258
12.3 Thread类与线程的创建 259
12.3.1 使用Thread的子类 259
12.3.2 使用Thread类 259
12.3.3 关于run方法启动的次数 260
12.4 线程的常用方法 261
12.5 线程同步 264
12.6 在同步方法中使用wait()、notify()和notifyAll()方法 266
12.7 线程联合 267
12.8 上机实践 269
习题 271
第13章 Java网络编程 274
13.1 URL类 274
13.1.1 URL的构造方法 274
13.1.2 读取URL中的资源 275
13.2 InetAddress类 276
13.2.1 地址的表示 276
13.2.2 获取地址 276
13.3 套接字 277
13.3.1 套接字概述 277
13.3.2 客户端套接字 278
13.3.3 ServerSocket对象与服务器端套接字 278
13.3.4 使用多线程技术 281
13.4 UDP数据报 284
13.4.1 发送数据包 285
13.4.2 接收数据包 285
13.5 广播数据报 289
13.6 Java远程调用(RMI) 291
13.6.1 远程对象及其代理 291
13.6.2 RMI的设计细节 292
13.7 上机实践 295
习题 298
第14章 JDBC数据库操作 300
14.1 Derby数据库 300
14.2 在命令行连接内置Derby数据库 301
14.2.1 启动ij环境 301
14.2.2 连接内置Derby数据库 302
14.2.3 操作表 302
14.2.4 Derby数据库常用的基本数据类型 304
14.3 在命令行连接网络Derby数据库 305
14.3.1 启动Derby数据库服务器 305
14.3.2 连接网络Derby数据库 305
14.4 JDBC 306
14.4.1 连接内置Derby数据库 306
14.4.2 连接网络Derby数据库 307
14.5 查询操作 308
14.5.1 顺序查询 309
14.5.2 控制游标 309
14.5.3 条件与排序查询 312
14.6 更新、添加与删除操作 314
14.7 使用预处理语句 316
14.7.1 预处理语句优点 316
14.7.2 使用通配符 317
14.8 事务 319
14.8.1 事务及处理 319
14.8.2 JDBC事务处理步骤 319
14.9 上机实践 320
习题 323
参考文献 324