第1章 Java语言基础 1
1.1 Java概述 1
1.1.1 Java发展历史 1
1.1.2 Java语言的特点 2
1.1.3 简单的Java程序 3
1.1.4 Java运行平台 10
1.2 Java语言基础 10
1.2.1 基本元素 10
1.2.2 简单数据类型 12
1.2.3 枚举类型 13
1.2.4 常量与变量 14
1.2.5 运算符与表达式 14
1.2.6 类型转换 17
1.2.7 流程控制 18
习题 25
第2章 类和对象 26
2.1 类和对象的概念 26
2.2 类的实现 27
2.2.1 类的定义 27
2.2.2 成员变量 28
2.2.3 定义方法 29
2.2.4 构造方法 32
2.3 对象的实现 33
2.3.1 创建对象 33
2.3.2 对象的使用 35
2.3.3 清除对象 36
2.4 封装与信息隐藏 37
2.5 对象间的消息传递 38
2.6 Get和Set方法 39
2.7 方法重载 40
2.8 关键字this 41
2.8.1 对字段使用this关键字 42
2.8.2 构造方法中使用this关键字 42
2.8.3 将当前对象的引用作为参数传给其他对象 43
2.9 类成员和实例成员 44
2.9.1 类变量和实例变量 44
2.9.2 类方法和实例方法 44
2.9.3 类变量和实例变量的初始化 46
2.10 包 49
2.10.1 包的概念 49
2.10.2 创建包 49
2.10.3 引用包 50
2.10.4 包对文件的管理 51
2.11 访问权限控制 52
2.11.1 private 53
2.11.2 包访问控制 54
2.11.3 protected 55
2.11.4 public 55
2.12 嵌套类 56
2.12.1 静态嵌套类 57
2.12.2 内部类 58
2.13 Java程序结构 62
习题 62
第3章 继承和多态 64
3.1 类的继承 64
3.1.1 继承概念 64
3.1.2 继承实现 65
3.1.3 继承的优点 66
3.1.4 成员变量的隐藏和方法重写 66
3.1.5 super关键字 67
3.1.6 instanceof操作符 71
3.1.7 jave.lang.Object类 71
3.1.8 final数据、方法和类 74
3.2 抽象类和抽象方法 76
3.2.1 抽象类 76
3.2.2 抽象方法 77
3.3 接口 78
3.3.1 接口概念 78
3.3.2 定义接口 79
3.3.3 实现接口 81
3.3.4 接口类型的使用 82
3.3.5 接口的类型转换 83
3.4 多态 84
3.4.1 继承与多态 85
3.4.2 接口与多态 87
3.4.3 多态的优点 88
3.5 设计模式 89
3.5.1 单实例模式 90
3.5.2 策略模式 92
3.6 UML类图 96
3.6.1 UML简介 96
3.6.2 类图 97
3.6.3 类之间的关系 98
3.6.4 多重性 100
习题 102
第4章 泛型 103
4.1 问题的提出 103
4.2 泛型类 108
4.2.1 定义泛型类 108
4.2.2 使用泛型类 109
4.2.3 泛型类实例 110
4.3 泛型方法 113
4.3.1 使用泛型方法 113
4.3.2 受限类型参数 114
4.3.3 使用子类型 116
4.4 通配符 117
4.4.1 使用通配符 118
4.4.2 通配符捕获 120
4.5 类型擦除 122
习题 125
第5章 集合 126
5.1 数组 126
5.1.1 创建数组 126
5.1.2 访问数组元素 127
5.1.3 数组初始化 129
5.1.4 返回数组的方法 130
5.2 数组的基本操作 131
5.2.1 数组复制 131
5.2.2 数组比较 133
5.2.3 数组排序 134
5.2.4 数组查找 139
5.3 多维数组 141
5.4 集合框架简介 143
5.4.1 集合接口 143
5.4.2 集合实现 144
5.4.3 集合算法 145
5.5 集合实现 146
5.5.1 ArrayList类 146
5.5.2 HashSet类 148
5.5.3 HashMap类 151
5.6 集合算法 152
5.6.1 排序算法 153
5.6.2 查找算法 154
5.7 自定义集合实现类 156
习题 159
第6章 异常处理 160
6.1 异常 160
6.1.1 基本概念 160
6.1.2 异常分类 160
6.1.3 常用标准异常 161
6.2 异常处理 162
6.2.1 捕获异常 162
6.2.2 声明异常 166
6.2.3 抛出异常 167
6.2.4 异常链 168
6.2.5 覆盖抛出异常的方法 169
6.3 自定义异常类 171
6.3.1 创建自定义异常类 171
6.3.2 使用自定义异常类 172
6.4 日志 173
6.4.1 日志记录器 173
6.4.2 使用全局日志记录器 173
6.4.3 使用自定义日志记录器 174
6.5 断言 176
6.5.1 断言编译 177
6.5.2 打开与关闭断言 177
6.5.3 状态断言 178
6.5.4 控制流断言 179
习题 181
第7章 线程 182
7.1 线程概念 182
7.2 线程的实现 183
7.2.1 通过继承Thread类构造线程 183
7.2.2 通过Runnable接口构造线程 185
7.3 线程的生命周期 188
7.4 线程优先级和线程调度 190
7.5 多线程资源共享与同步 196
7.5.1 多线程访问共享资源的加锁机制 196
7.5.2 多线程的协作同步运行机制 202
7.5.3 死锁问题 210
7.6 Daemon线程 211
7.7 线程组 211
习题 213
第8章 输入输出 215
8.1 流的概念 215
8.2 字节流 215
8.2.1 InputStream类 216
8.2.2 OutputStream类 216
8.2.3 示例 217
8.3 字符流 219
8.3.1 Reader类 219
8.3.2 Writer类 220
8.3.3 示例 221
8.4 装饰模式 221
8.5 命令行I/O 224
8.5.1 标准流 224
8.5.2 控制台 226
8.6 格式化I/O 227
8.6.1 格式化输入 227
8.6.2 格式化输出 227
8.6.3 示例 228
8.7 对象序列化 229
8.8 文件操作 230
8.8.1 File类 230
8.8.2 随机访问文件 232
8.9 新I/O 233
习题 235
第9章 图形用户界面 236
9.1 Swing概述 236
9.2 Swing容器和组件 236
9.2.1 Swing容器 237
9.2.2 Swing组件 242
9.3 布局管理器 262
9.3.1 BorderLayout 262
9.3.2 FlowLayout 263
9.3.3 BoxLayout 264
9.3.4 GridLayout 265
9.3.5 CardLayout 266
9.3.6 GridBagLayout 267
9.4 事件处理 269
9.4.1 事件处理机制 269
9.4.2 事件类 270
9.4.3 事件处理示例 273
9.4.4 适配器类 276
9.5 多媒体 277
9.5.1 颜色和字体 277
9.5.2 绘图 278
9.5.3 基本图形 278
9.5.4 图像 281
9.5.5 动画 284
习题 285
第10章 网络通信 286
10.1 网络基本概念 286
10.1.1 TCP协议 286
10.1.2 UDP协议 286
10.1.3 IP地址和端口 287
10.2 Java网络功能 288
10.2.1 面向网络接口层的类 288
10.2.2 面向网络层的类 290
10.2.3 面向传输层的类 291
10.2.4 面向应用层的类 291
10.3 TCP通信 292
10.3.1 TCP服务器的实现 292
10.3.2 TCP客户的实现 294
10.3.3 处理多客户请求的TCP服务器 296
10.4 UDP通信 299
10.4.1 UDP服务器的实现 300
10.4.2 客户端编程 301
10.4.3 多播通信 303
10.5 使用URL 307
10.5.1 创建URL对象 308
10.5.2 解析URL 309
10.5.3 读取URL资源内容 310
10.5.4 使用URL连接 311
10.5.5 与Servlet交互 311
习题 315
附录A 双人联机五子棋游戏 316
A.1 双人联机五子棋游戏实例说明 316
A.2 完整的源代码 317
A.2.1 配置文件server.properties 317
A.2.2 ReadConfig类 317
A.2.3 FiveInARowServer类 318
A.2.4 ServerThread类 319
A.2.5 FiveInARowMain类 321
A.2.6 ClientThread类 322
A.2.7 ClientGUI类 324
A.2.8 Logic类 328