第1章 Java概述 1
1.1 Java的诞生 1
1.2 Java的技术特点 2
第2章 变量和表达式 5
2.1 Java的符号集 5
2.2 变量 6
2.2.1 变量的定义 6
2.2.2 变量的声明 6
2.2.3 变量的命名 7
2.2.4 变量的类型 8
2.2.5 数组 10
2.2.6 变量的作用域 11
2.3 表达式 12
2.4 运算符及优先级 13
2.4.1 算术运算符 13
2.4.2 关系运算符 15
2.4.3 布尔逻辑运算符 16
2.4.4 位运算符 17
2.4.5 选择运算符?: 19
2.4.6 运算符的优先级 19
2.5 本章小结 20
2.5.1 主要内容 20
2.5.2 课后习题 20
第3章 流程控制 22
3.1 概述 22
3.2.1 简单条件语句 23
3.2 条件语句if-else 23
3.2.2 复合条件语句 24
3.2.3 条件运算符 26
3.3 循环语句 27
3.3.1 while语句 27
3.3.2 do-while型循环 28
3.3.3 for型循环 29
3.4 开关语句 30
3.5 转移语句 32
3.6 返回语句 34
3.7 本章小结 34
3.7.1 主要内容 34
3.7.2 课后习题 35
第4章 类、包和接口 36
4.1 面向对象基础 36
4.1.1 传统的面向过程编程与面向对象编程 36
4.1.2 面向对象编程的基本概念 37
4.2 类 37
4.2.1 类的声明 37
4.2.2 访问控制修饰符 38
4.2.3 方法 39
4.2.4 static修饰符和final修饰符 43
4.2.5 对象的创建和销毁 44
4.2.6 null、this和super关键字 46
4.3 抽象类和接口 47
4.2.7 类转换 47
4.4 包 49
4.4.1 包的声明 49
4.4.2 加载包 50
4.5 本章小结 50
4.5.1 主要内容 50
4.5.2 课后习题 51
5.1.1 小程序与Web 52
5.1 小程序Applet 52
第5章 小程序和应用程序 52
5.1.2 小程序的生命周期 53
5.1.3 applet上下文 55
5.1.4 applet的限制 56
5.2 应用程序 56
5.3 本章小结 57
5.3.1 主要内容 57
5.3.2 课后习题 57
6.1 异常的捕捉和处理 58
6.1.1 捕捉一个异常 58
第6章 异常处理 58
6.1.2 捕捉多个异常 61
6.1.3 finally关键字 61
6.1.4 异常的嵌套 63
6.1.5 throw关键字 64
6.2 异常的分类 65
6.3 自定义异常类 67
6.4.2 课后习题 70
6.4.1 主要内容 70
6.4 本章小结 70
第7章 文件和流 71
7.1 文件 71
7.1.1 File类 71
7.1.2 RandomAccessFile类 75
7.2 流 83
7.2.1 InputStream和OutputStream 84
7.2.2 文件流FileInputStream和FileOutputStream 85
7.2.3 字符流Reader和Writer 90
7.2.4 其他的低级流 91
7.2.5 管道类 92
7.3 高级流 98
7.4 本章小结 101
7.4.1 主要内容 101
7.4.2 课后习题 101
8.1 Java的基本类库 102
8.2 抽象窗口工具集 102
第8章 AWT简介 102
8.3 AWT类库的继承层次 103
8.4 同位体和平台独立 104
8.5 轻量构件 105
8.6 2D API 105
8.7 构件、容器及布局管理器 105
8.7.1 构件 105
8.7.2 容器 107
8.7.3 布局管理器 107
8.8.2 课后习题 108
8.8 本章小结 108
8.8.1 主要内容 108
第9章 事件 109
9.1 基于继承的事件处理 109
9.1.1 覆盖事件处理的方法 109
9.1.2 Java.awt.Event.id事件类型 110
9.1.3 事件的修饰域 113
9.1.4 事件的传播 113
9.1.5 构件的标识 116
9.2 基于授权的事件模型 117
9.2.1 授权事件模型 117
9.2.2 事件类 118
9.2.3 事件监听者 121
9.2.4 适配器 122
9.2.5 生成没有听众的构件子类 124
9.2.6 委托事件模型的优点 125
9.2.7 实例——ImgButton 125
9.2.8 构件事件和语义事件 133
9.2.9 在自定义构件中激发AWT事件 135
9.2.10 在自定义构件中激发自定义事件 138
9.3 本章小结 151
9.3.1 主要内容 151
9.3.2 课后习题 151
第10章 布局管理器 153
10.1 布局管理器 153
10.1.1 约束条件 154
10.1.2 容器空白区 155
10.1.3 构件的首选尺寸 156
10.1.4 强制容器布置构件 156
10.2 标准AWT布局管理器 159
10.3 FlowLayout布局管理器 160
10.4 BorderLayout布局管理器 162
10.5 CardLayout布局管理器 163
10.6 GridLayout布局管理器 166
10.7.1 GridBagLayout和GridBagConstraints 168
10.7 GridBagLayout布局管理器 168
10.7.2 显示区 169
10.7.3 GridBagConstraints.anchor 169
10.7.4 GridBagConstraints.fill 170
10.7.5 GridBagConstraints.gridx和GridBagConstraints.gridy 171
10.7.6 GridBagConstraints.gridwidth和GridBagConstraints.gridheight 171
10.7.7 GridBagConstraints.weightx和GridBagConstraints.weighty 172
10.7.8 GridBagConstraints.insets和GridBagConstraints.ipadx 173
10.7.9 GridBagLayout的实际应用 173
10.7.10 面板的嵌套 177
10.8 null布局管理器 179
10.9 本章小结 180
10.9.1 主要内容 180
10.9.2 课后习题 181
第11章 AWT基本构件 182
11.1 AWT Component构件 182
11.1.1 AWT Component构件公共属性 182
11.1.2 构件的可见性和响应 183
11.1.3 构件的位置、边界、坐标 185
11.1.4 构件的显示 185
11.1.5 ZOrder 186
11.1.6 光标 189
11.1.7 构件和同位体 192
11.2 标签和按钮 195
11.3 画布 196
11.4 面板 198
11.5 复选框 200
11.5.1 Java.awt.ItemSelectable接口 200
11.5.2 Java.awt.Checkbox 201
11.5.3 相容的复选框 201
11.5.4 相互排斥的复选框 203
11.6 选择框和列表 205
11.6.1 Java.awt.Choice 205
11.6.2 字体选择框 207
11.6.3 列表框 210
11.7 文本构件 211
11.7.1 Java.awt.TextComponent 211
11.7.2 TextComponent监听者 212
11.7.3 Java.awt.TextField 213
11.7.4 输入的有效性 214
11.7.5 Java.awt.TextArea 217
11.8 滚动条与滚动框 222
11.8.1 滚动条Java.awt.Scrollbar 223
11.8.2 滚动容器Java.awt.ScrollPane 229
11.9 本章小结 232
11.9.1 主要内容 232
11.9.2 课后习题 233
第12章 菜单 234
12.1 概述 234
12.2 菜单栏菜单 235
12.2.1 菜单的创建和响应 235
12.2.2 帮助菜单 238
12.2.3 复选框菜单项 240
12.2.4 级联菜单 243
12.3 弹出式菜单 245
12.4 本章小结 247
12.4.1 主要内容 247
12.4.2 课后习题 247
第13章 窗口、框架和对话框 248
13.1 概述 248
13.2.1 Splash窗口 249
13.2 Java.awt.Window 249
13.3 Java.awt.Frame框架 254
13.4 Java.awt.Dialog对话框 256
13.4.1 MessageBox对话框 259
13.4.2 iata.awt.FileDialog文件存取对话框 263
13.5 本章小结 266
13.5.1 主要内容 266
13.5.2 课后习题 266
14.1 线程和进程的概念 267
第14章 多线程 267
14.2 线程的建立 268
14.2.1 Thread类和Runnable接口 268
14.2.2 建立线程 269
14.3 线程的优先级 272
14.4 线程的控制 275
14.4.1 线程的生命周期 275
14.4.2 线程的控制 275
14.5 线程组 281
14.6 线程通信和同步问题 284
14.6.1 线程间通信 284
14.6.2 线程间的同步 287
14.7 死锁 294
14.8 哲学家进餐问题 295
14.9 精灵线程和用户线程 301
14.10 一个多线程的实际应用实例 301
14.11.2 课后习题 306
14.11 本章小结 306
14.11.1 主要内容 306
第15章 网络编程 307
15.1 TCP/IP基础 307
15.1.1 网络协议 307
15.1.2 OSI七层模型 307
15.1.3 TCP/IP网络模型 308
15.1.4 Internet协议(IP协议) 309
15.1.5 传输控制协议(TCP协议) 309
15.1.6 用户数据报协议(UDP) 310
15.1.7 统一资源定位器URL 310
15.2 TCP套接字 311
15.2.1 套接字基础 311
15.2.2 Socket类 312
15.2.3 服务器端程序 316
15.2.4 定制套接字的行为 319
15.2.5 一个客户端/服务器程序的范例——聊天室 320
15.3.1 UDP套接字的特点 348
15.3 UDP套接字 348
15.3.2 UDP范例——Daytime服务程序 350
15.3.3 请求Daytime服务的客户端 353
15.4 IP的多目寻址 355
15.4.1 Java中的多目寻址 356
15.4.2 多目寻址的范例——PopupMessage 356
15.5.1 主要内容 367
15.5.2 课后习题 367
15.5 本章小结 367
第16章 Java和Internet 369
16.1 统一资源定位器URL 369
16.2 Applet类提供的网络功能 371
16.2.1 从网络上获取图像 371
16.2.2 从网络上获取声音 373
16.2.3 显示网络上其他HTML文档 374
16.2.4 读取网络上的文件内容 375
16.3.1 Java对WWW的支持 377
16.3 Java的网络类库 377
16.2.5 Applet的网络安全限制 377
16.3.2 Ftp 378
16.3.3 NNTP 381
16.4 本章小结 381
16.4.1 主要内容 381
16.4.2 课后习题 382
17.1 黑白棋 383
17.2 需求分析 383
第17章 编程实例分析 383
17.3 程序分析 384
17.3.1 落子判断的实现 384
17.3.2 人机对弈的算法 392
17.3.3 图形界面 400
17.3.4 OthelloPanel类的其余部分 405
17.3.5 ChatFrm、LogonFrm、PlayOnNetFrm窗口类 430
17.3.6 MySocket类 444
17.4 本章小结 461
17.4.1 主要内容 461