第一部分 Java简介 1
前言 1
前言 1
第1章 World Wide Web与Java 1
第一部分 Java简介 1
第1章 World Wide Web与Java 1
1.1 赞辞、希望和历史 2
1.1 赞辞、希望和历史 2
1.1.1 从消费者电子工程项目中得到的启迪 3
1.1.1 从消费者电子工程项目中得到的启迪 3
1.1.2 Java适合于Web应用开发 4
1.1.2 Java适合于Web应用开发 4
1.2 Java程序是如何运行的 6
1.2 Java程序是如何运行的 6
1.3.1 Applet运行时刻环境 7
1.3 Applet模型(Applet Model) 7
1.3 Applet模型(Applet Model) 7
1.3.1 applet运行时刻环境 7
1.3.3 Applet的安全下载 8
1.3.2 Applet不能做什么 8
1.3.3 applet的安全下载 8
1.3.2 applet不能做什么 8
1.4 为什么Java会广受欢迎 9
1.4.1 新旧世界中的姣姣者 9
1.4.1 新旧世界中的姣姣者 9
1.4 为什么Java会广受欢迎 9
1.4.3 没有Makefile和库连接的烦恼 10
1.4.4 没有直接的内存访问或指针算术运算 10
1.4.5 操作符不能重载 10
1.4.2 没有预处理器 10
1.4.2 没有预处理器 10
1.4.3 没有Makefile和库连接的烦恼 10
1.4.4 没有直接的内存访问或指针算术运算 10
1.4.5 操作符不能重载 10
1.4.7 画向对象特征 11
1.4.6 不允许多重继承 11
1.4.6 不允许多重继承 11
1.4.7 画向对象特征 11
1.4.8 面向网络环境 13
1.4.9 动态性 13
1.4.8 面向网络环境 13
1.4.9 动态性 13
1.4.10 面向多线程 14
1.4.10 面向多线程 14
第2章 Java程序设计基础 16
2.1 入门 16
2.1 入门 16
第2章 Java程序设计基础 16
2.1.3 UNLX 17
2.1.1 Windows95/NTpv ufye 17
2.1.1 Windows95/NT安装 17
2.1.3 UNIX 17
2.1.2 Power PC Macintosh 17
2.1.2 Power PC Macintosh 17
2.1.4 第一个Java程序 18
2.1.4 第一个Java程序 18
2.1.5 传递命令行参数 19
2.1.5 传递命令行参数 19
2.2.1 结构概览 20
2.1.6 简单的正文输出 20
2.2 Java程序结构剖析 20
2.2.1 结构概览 20
2.1.6 简单的正文输出 20
2.2 Java程序结构剖析 20
2.2.2 变量 21
2.2.2 变量 21
2.2.3 方法(Methods) 27
2.2.3 方法(Methods) 27
2.2.4 类 31
2.2.4 类 31
2.2.5 包(Packages) 34
2.2.5 包(Packages) 34
2.3.1 编译与执行过程 35
2.3 Java 运行时刻环境(The Java Runtime Environment) 35
2.3.1 编译与执行过程 35
2.3 Java 运行时刻环境(The Java Runtime Environment) 35
2.3.2 垃圾收集 37
2.3.2 垃圾收集 37
2.4 编写Java applet程序 38
2.4.1 第一个applet程序 38
2.4.1 第一个applet程序 38
2.4 编写Java applet程序 38
2.4.2 applet程序结构剖析 39
2.4.2 applet程序结构剖析 39
2.5 将applet程序放到Web上 40
2.5 将applet程序放到Web上 40
2.6 为源代码自动产生文档 42
2.6 为源代码自动产生文档 42
第3章 语法和语义 45
第二部分 Java Applet要素 45
第3章 语法和语义 45
第二部分 Java Applet要素 45
3.2 注释 46
3.1 标识符和Unicode 46
3.1 标识符和Unicode 46
3.2 注释 46
3.4 数据类型 47
3.3 关键字 47
3.3 关键字 47
3.4 数据类型 47
3.5 原语数据类型 48
3.5.1 整数 48
3.5.1 整数 48
3.5 原语数据类型 48
3.5.2 浮点数 49
3.5.3 字符 49
3.5.3 字符 49
3.5.2 浮点数 49
3.6 原语数据类型转换 50
3.5.4 布尔值 50
3.5.4 布尔值 50
3.6 原语数据类型转换 50
3.7.1 作用域 52
3.6.1 从浮点数到整数 52
3.6.2 从double到浮点数 52
3.6.3 布尔值与其他类型的转换 52
3.7 变量声明 52
3.7.1 作用域 52
3.6.1 从浮点数到整数 52
3.6.3 布尔值与其他类型的转换 52
3.6.2 从double到浮点数 52
3.8 操作符 54
3.7.2 变量命名 54
3.7.2 变量命名 54
3.8 操作符 54
3.8.1 数字操作符 55
3.8.1 数字操作符 55
3.8.2 对象操作符 61
3.8.2 对象操作符 61
3.8.3 字符串操作符 62
3.8.3 字符串操作符 62
3.9 包 64
3.9 包 64
3.10.1 构造函数 65
3.10.2 析构函数 65
3.10 类 65
3.10.1 构造函数 65
3.10.2 析构函数 65
3.10 类 65
3.10.3 类修饰符 66
3.10.3 类修饰符 66
3.10.4 变量修饰符 67
3.10.4 变量修饰符 67
3.10.6 方法重载 68
3.10.5 方法修饰符 68
3.10.6 方法重载 68
3.10.5 方法修饰符 68
3.11 索引变量类型转换 69
3.11 索引变量类型转换 69
3.13 数组 70
3.13 数组 70
3.12 接口 70
3.12 接口 70
3.13.1 创建数组 71
3.13.1 创建数组 71
3.14 控制流 72
3.13.3 访问数组 72
3.13.2 初始化数组 72
3.14 控制流 72
3.13.2 初始化数组 72
3.13.3 访问数组 72
3.14.1 if-else语句 73
3.14.1 if-else语句 73
3.14.2 While和Do-While语句 74
3.14.2 While和Do-While语句 74
3.14.3 for 语句 75
3.14.3 for 语句 75
3.14.4 Break和Continue语句 76
3.14.4 Break和Continue语句 76
3.14.5 Return语句 77
3.14.5 Return语句 77
3.14.6 Switch语句 78
3.15 异常处理 78
3.14.6 Switch语句 78
第4章 Java与面向对象方法 81
第4章 Java与面向对象方法 81
4.1 面向对象的优点 81
4.1 面向对象的优点 81
4.1.1 数据隐蔽 82
4.1.1 数据隐蔽 82
4.1.2 封装 82
4.1.2 封装 82
4.1.3 继承带来的可重用性 84
4.1.3 继承带来的可重用性 84
4.1.4 可维护性 85
4.1.4 可维护性 85
4.2 Java对象特性 86
4.2.1 Java的类层次结构 86
4.2.1 Java的类层次结构 86
4.2 Java对象特性 86
4.2.2 特殊变量 88
4.2.2 特殊变量 88
4.2.3 类实例化 91
4.2.3 类实例化 91
4.2.4 访问规则 92
4.2.4 访问规则 92
4.3.1 结构化类层次体系 93
4.3 使用继承 93
4.3 使用继承 93
4.3.1 结构化类层次体系 93
4.3.2 抽象类和方法 94
4.3.2 抽象类和方法 94
4.4 多态性和Java接口 95
4.4 多态性和Java接口 95
4.5 概念汇总与示例 96
4.5 概念汇总与示例 96
5.1.1 什么是Applet程序 100
第5章 Applet程序是如何工作的 100
5.1 Applet程序简介 100
第5章 Applet程序是如何工作的 100
5.1 Applet程序简介 100
5.1.1 什么是Applet程序 100
5.1.2 Applet的运行过程 102
5.1.2 Applet的运行过程 102
5.1.3 获取资源 104
5.1.3 获取资源 104
5.1.4 获取参数 107
5.1.4 获取参数 107
5.2 处理用户事件 108
5.2 处理用户事件 108
5.1.2 鼠标事件 109
5.1.2 鼠标事件 109
5.2.2 键盘事件 111
5.2.2 键盘事件 111
5.2.3 事件处理:到底发生些什么 112
5.2.3 事件处理:到底发生些什么 112
5.3.1 Rumnable接口 114
5.3 使用线程实现动画 114
5.3 使用线程实现动画 114
5.3.1 Rumnable接口 114
5.3.2 简单的线程方法 115
5.3.2 简单的线程方法 115
5.3.3 消除闪烁 119
5.3.3 消除闪烁 119
6.1 API基础 123
第三部分 Java应用程序接口与开发工具包 123
第6章 使用应用程序编程接口 123
第三部分 Java应用程序接口与开发工具包 123
第6章 使用应用程序编程接口 123
6.1 API基础 123
6.1.1 结构 124
6.1.1 结构 124
6.1.2 使用API 125
6.1.2 使用API 125
6.1.3 java.lang.Object类 131
6.1.3 java.lang.Object类 131
6.2.1 创建字符串 132
6.2 字符串操纵工具 132
6.2.1 创建字符串 132
6.2 字符串操纵工具 132
6.2.2 比较字符串 134
6.2.2 比较字符串 134
6.2.3 处理子串 136
6.2.3 处理子串 136
6.2.5 分析字符串 137
6.2.4 修改字符串 137
6.2.5 分析字符串 137
6.2.4 修改字符串 137
6.2.6 将字符串转换为其他的数据类型 139
6.2.6 将字符串转换为其他的数据类型 139
6.3 原语类型包装 141
6.3 原语类型包装 141
6.3.1 对象容器类 142
6.3.2 Vector类 142
6.3.2 Vector类 142
6.3.1 对象容器类 142
6.3.3 散列表 145
6.3.3 散列表 145
6.3.4 堆栈 147
6.3.4 堆栈 147
6.3.5 API的接口 148
6.3.7 Enumeration接口 148
6.3.6 重要的结构接口 148
6.3.6 重要的结构接口 148
6.3.5 API的接口 148
6.3.7 Enumeration接口 149
6.3.8 java.lang.Cloneable与java.lang.Runnable 150
6.3.8 java.lang.Cloneable与java.lang.Runnable 150
6.3.9 使用java.util.Observer进行事件处理 151
6.3.9 使用java.util.Observer进行事件处理 151
6.4 Math与API 153
6.4 Math与API 153
第7章 基本用户接口 155
第7章 基本用户接口 155
7.2 获得键盘输入 156
7.1 货币兑换器 156
7.1 货币兑换器 156
7.2 获得键盘输入 156
7.3 创建正文字段与正文区域 158
7.3 创建正文字段与正文区域 158
7.4 创建按钮 160
7.4 创建按钮 160
7.5 创建复选框 162
7.5 创建复选框 162
7.6 创建列表框 165
7.6 创建列表框 165
7.7 创建弹出式选项菜单 168
7.7 创建弹出式选项菜单 168
7.8 创建与使用滚动条 170
7.8 创建与使用滚动条 170
7.9 标签 172
7.9 标签 172
第8章 高级用户接口 174
8.1 设计程序布局 174
第8章 高级用户接口 174
8.1 设计程序布局 174
8.2 容器 175
8.2.1 面板 175
8.2.2 窗口 175
8.2 容器 175
8.2.1 面板 175
8.2.2 窗口 175
8.2.3 菜单 176
8.2.3 菜单 176
8.3 字体 179
8.4 布局管理器 179
8.3 字体 179
8.4 布局管理器 179
8.4.4 CardLayout 180
8.4.1 FlowLayout 180
8.4.2 BorderLayout 180
8.4.3 GridLayout 180
8.4.4 CardLayout 180
8.4.3 GridLayout 180
8.4.2 BorderLayout 180
8.4.1 FlowLayout 180
8.4.5 GridBagLayout 181
8.4.5 GridBagLayout 181
8.4.7 使用布局管理器 182
8.4.6 选择布局管理器 182
8.4.6 选择布局管理器 182
8.4.7 使用布局管理器 182
8.4.8 获得布局的大小 183
8.5 综合应用:示例 183
8.5.1 基于Frame构建的Applet:Flow-Layout 183
8.5 综合应用:示例 183
8.4.8 获得布局的大小 183
8.5.1 基于Frame构建的Applet:FlowLayout 183
8.5.2 Dialog applet:BorderLayout 185
8.5.2 Dialog Applet:BorderLayout 185
8.5.3 Panel Appet:BorderLayout 188
8.5.3 Panel Appet:BorderLayout 188
8.5.4 相同大小的元素:GridLayout 190
8.5.4 相同大小的元素:GridLayout 190
8.5.5 动态改变组件:CardLayout 192
8.5.5 动态改变组件:CardLayout 192
8.5.6 精确布局:GridBagLayout 195
8.5.6 精确布局:GridBagLayout 195
8.5.7 添加菜单:CardLayout 197
8.5.7 添加菜单:CardLayout 197
第四部分 高级Java程序设计 201
9.1.1 绘制轮廓形状 201
9.1.1 绘制轮廓形状 201
第9章 图形与图像 201
9.1 使用Graphics类绘图 201
9.1 使用Graphics类绘图 201
第9章 图形与图像 201
第四部分 高级Java程序设计 201
9.1.2 绘制填充图形 202
9.1.2 绘制填充图形 202
9.1.3 绘制正文与图像 203
9.1.3 绘制正文与图像 203
9.2 使用Image类 204
9.2 使用Image类 204
9.2.2 使用Media Tracker 205
9.2.1 引入图像 205
9.2.2 使用Media Tracker 205
9.2.1 引入图像 205
9.2.3 创建图像 206
9.2.3 创建图像 206
9.2.4 异步图像的接口 207
9.2.4 异步图像的接口 207
9.2.5 图像操纵技术 210
9.2.5 图像操纵技术 210
10.2.1 boolean equals(Object o) 217
第10章 高级程序设计 217
10.2 创建兼容类 217
10.1 构建Java包 217
10.2.1 boolean equals(Object o) 217
10.2 创建兼容类 217
10.1 构建Java包 217
第10章 高级程序设计 217
10.2.2 String to String() 218
10.2.2 String to String() 218
10.2.3 编制可重用构件 224
10.2.3 编制可重用构件 224
10.2.4 将设计转换为程序代码 226
10.2.4 将设计转换为程序代码 226
10.2.5 对象类型转换 227
10.2.5 对象类型转换 227
10.3 预防崩溃的Java代码 228
10.3.1 异常情态捕获检测 228
10.3 预防崩溃的Java代码 228
10.3.1 异常情态捕获检测 228
10.3.2 引发异常处理 234
10.3.2 引发异常处理 234
10.4 对象的运行时刻信息 238
10.4 对象的运行时刻信息 238
11.1 使用Thread类创建线程 240
第11章 高级多线程程序设计 240
11.1 使用Thread类创建线程 240
第11章 高级多线程程序设计 240
11.2 使用Ronnable接口创建线程 241
11.2 使用Ronnable接口创建线程 241
11.3 管理线程 242
11.3 管理线程 242
11.3.1 调度线程 244
11.3.1 调度线程 244
11.3.2 线程分组 249
11.3.2 线程分组 249
11.3.3 线程同步 250
11.3.3 线程同步 250
11.3.4 Volatile变量 259
11.3.4 Volatile变量 259
第12章 超越Applet模式的程序设计 261
12.1 从Applet到单独运行的应用程序 261
12.1.1 图形Java应用程序基础 261
12.1.1 图形Java应用程序基础 261
12.1 从Applet到单独运行的应用程序 261
第12章 超越Aplet模式的程序设计 261
12.1.2 访问文件系统 264
12.1.2 访问文件系统 264
12.2 native方法 267
12.2 native方法 267
12.2.1 如何使用本地库 267
12.2.1 如何使用本地库 267
12.2.2 native方法详述 268
12.2.2 native方法详述 268
12.2.3 准备C库 270
12.2.3 准备C库 270
12.2.4 用C实现native方法 271
12.2.4 用C实现native方法 271
12.2.5 编译与使用DLL 279
12.2.5 编译与使用DLL 279
第五部分 Java与网络 281
第五部分 Java与网络 281
13.1 Sockets(套接字) 281
第13章 使用sockets和Streams进行网络程序设计 281
13.1 Sockets(套接字) 281
第13章 使用ockets和Streams进行网络程序设计 281
13.2 无连接数据报 285
13.2 无连接数据报 285
13.3 Streams(流) 287
13.3 Streams(流) 287
13.3.2 输出流 288
13.3.1 输入流 288
13.3.2 输出流 288
13.3.1 输入流 288
13.3.3 Stream变种 291
13.3.3 Stream变种 291
13.3.4 数据流 292
13.3.4 数据流 292
13.3.5 从正文stream中分析数据 293
13.3.5 从正文stream中分析数据 293
13.3.6 使用管道进行Applet间的通信 297
13.3.6 使用管道进行Applet间的通信 297
第14章 使用URL进行网络程序设计 302
14.1 使用URL类 302
14.1 使用URL类 302
第14章 使用URL进行网络程序设计 302
14.1.1 获取内容 304
14.1.1 获取内容 304
14.1.2 用URL Connections进行连接 305
14.1.2 用URL Connections进行连接 305
14.1.3 HTTP与URL Connection类 306
14.1.4 MIME类型与Content Handler 306
14.1.4 MIME类型与Content Handler 306
14.1.3 HTTP与URL Connection类 306
14.1.5 设置Content HandlerFactory 308
14.1.5 设置Content HandlerFactory 308
14.1.6 自由使用流 311
14.1.7 设置选项 311
14.1.7 设置选项 311
14.1.6 自由使用流 311
14.3 URL的优点 313
14.3 URL的优点 313
15.1 设计自己的服务器与协议 314
第15章 编写Java服务器 314
15.1 设计自己的服务器与协议 314
第15章 编写Java服务器 314
15.1.1 定义服务器任务 315
15.1.2 定义客户/服务器交互 315
15.1.2 定义客户/服务器交互 315
15.1.1 定义服务器任务 315
15.2 构建Java服务器 316
15.2 构建Java服务器 316
15.2.1 利用Socket进行通信及处理I/O流 319
15.2.1 利用Socket进行通信及处理I/O流 319
15.2.2 处理多个连接与多个Applet客户 321
15.2.2 处理多个连接与多个Applet客户 321
15.3 构建聊天客户 324
15.3 构建聊天客户 324
16.1 协议 329
第六部分 Internet应用程序示例 329
第16章 交互式动画:一个广告Applet 329
16.2 特性 329
16.2 特性 329
16.1 协议 329
第16章 交互式动画:一个广告Applet 329
16.3 设计 330
16.3.1 构建显示部分 330
16.3.1 构建显示部分 330
16.3 设计 330
16.3.2 配置显示结构 332
16.3.2 配置显示结构 332
16.4 实现 335
16.4.1 构建Applet Configurable 335
16.4 实现 335
16.4.1 构建Applet Configurahle 335
16.4.2 用于显示的基类 338
16.4.2 用于显示的基类 338
16.4.3 编写分析程序 355
16.4.3 编写分析程序 355
16.4.4 定义操作区 358
16.4.4 定义操作区 358
16.5 进一步的改进 361
16.5 进一步的改进 361
第17章 与CGI的接口设计:Java仓库 362
17.1 协议 362
17.1 协议 362
第17章 与CGI的接口设计:Java仓库 362
17.3 设计 363
17.2 特性 363
17.3 设计 363
17.2 特性 363
17.4 实现 365
17.4 实现 365
17.4.1 执行HTTP请求 366
17.4.1 执行HTTP请求 366
17.4.2 存储商品数据 370
17.4.2 存储商品数据 370
17.4.3 FIFO类 371
17.4.3 FIFO类 371
17.4.4 取得图像和说明 372
17.4.4 取得图像和说明 372
17.4.5 管理用户选择 374
17.4.5 管理用户选择 374
17.4.6 取得配置数据和初始化 376
17.4.6 取得配置数据和初始化 376
17.4.7 组合各项功能 379
17.4.7 组合各项功能 379
17.4.8 向Web服务器发送用户选择 383
17.4.8 向Web服务器发送用户选择 383
17.5 进一步的改进 385
17.4.9 用CGI程序处理返回的数据 385
17.5 进一步的改进 385
17.4.9 用CGI程序处理返回的数据 385
18.1 协议 386
18.1 协议 386
第18章 与非HTTP服务器的接口设计:对弈客户程序 386
第18章 与非HTTP服务器的接口设计:对弈客户程序 386
18.3.1 与异步服务器通信 387
18.2 特性 387
18.3 设计与实现 387
18.3.1 与异步服务器通信 387
18.2 特性 387
18.3.2 创建通用棋盘 388
18.3.2 创建通用棋盘 388
18.3.3 连接棋盘与ICS 392
18.3.3 连接棋盘与ICS 392
18.3.4 编写applet 399
18.3.4 编写applet 399
18.4.1 改进登录窗口 405
18.4.1 改进登录窗口 405
18.4 进一步的改进 405
18.4 进一步的改进 405
18.4.2 增加当前游戏者列表 407
18.4.2 增加当前游戏者列表 407
19.2.1 用户指南 416
19.2 特性 416
19.1 协议 416
第19章 编写自己的服务器:会议调度程序 416
19.2.1 用户指南 416
19.2 特性 416
19.1 协议 416
第19章 编写自己的服务器:会议调度程序 416
19.2.2 设置自己的服务器 417
19.3 设计 417
19.3 设计 417
19.2.2 设置自己的服务器 417
19.3.1 网络接口模块 418
19.3.2 服务器 418
19.3.2 服务器 418
19.3.1 网络接口模块 418
19.3.3 安全性 419
19.3.4 速度与内存考虑 419
19.3.5 服务器设计 419
19.3.5 服务器设计 419
19.3.4 速度与内存考虑 419
19.3.3 安全性 419
19.3.6 客户端 420
19.3.7 项目相关模块 420
19.3.7 项目相关模块 420
19.3.6 客户端 420
19.3.8 用户接口模块 422
19.3.8 用户接口模块 422
19.3.9 整体结构 423
19.3.9 整体结构 423
19.4 实现 424
19.4.1 代码组织结构 424
19.4.2 网络接口模块 424
19.4.2 网络接口模块 424
19.4.1 代码组织结构 424
19.4 实现 424
19.4.3 项目相关模块 432
19.4.3 项目相关模块 432
19.4.4 用户接口模块 437
19.4.4 用户接口模块 437
19.5 进一步的改进 441
19.5 进一步的改进 441