第一部分 Java基础知识 1
第一章 Java概述 3
1.1 简介 3
1.2 Java发展简史 4
1.3 Applets 4
1.4 Java的特性 5
1.4.1 简单 5
1.4.2 面向对象 5
1.4.3 健壮 5
1.4.7 高效性 6
1.5 Java语言的基础 6
1.4.8 动态性 6
1.4.6 结构中立 6
1.4.5 安全 6
1.4.4 解释型 6
1.6 Java作为面向对象的语言 . 7
1.6.1 类(Class) 7
1.6.2 层次结构(Hierarchy) 7
1.6.3 变量(Variable) 8
1.6.4 方法(Method) 8
1.7.4 注释 9
1.7.3 程序块 9
1.7.2 表达式 9
1.7.1 语句 9
1.7 基本编程元素 9
1.6.5 继承(Inheritance) 9
1.7.5 数据类型 10
1.7.6 运算符 11
1.7.7 声明变量 12
1.8 执行流 13
1.8.1 条件 13
1.8.2 循环 13
1.8.3 数组 14
1.9.2 重载的方法 15
1.9.1 创建类 15
1.9 使用类、对象和接口 15
1.9.3 静态方法和变量 16
1.9.4 构造函数 16
1.9.5 创建对象 16
1.9.6 引用 16
1.9.7 类继承 17
1.9.8 null、this和super变量 17
1.9.9 封装(Encapsulation) 17
1.9.10 访问修饰字(Modifier) 17
1.9.12 类包(Package) 18
1.10 Java与C++++的区别 18
1.9.11 创建接口(Interface) 18
1.11 小结 19
第二章 起步阶段 21
2.1 获得Java SDK 21
2.2 Java开发环境 23
2.2.1 文本编辑器 23
2.2.2 Java编译器 23
2.2.3 Java解释器 24
2.2.4 Java调试器 24
2.2.5 Java Applet Viewer 24
2.3 编译Java程序 24
2.3.1 javac/javac_g 25
2.3.2 java/java_g 26
2.3.3 jdb 27
2.3.4 Applet Viewer 29
2.4 小结 30
第三章 Java类简介 31
3.1 Java中的类包 32
3.2 java.lang类包 33
3.2.1 Object类 33
3.2.2 基本类型的包装器 35
3.2.3 Java中的字符串 36
3.2.7 异常和错误 37
3.2.6 执行线程 37
3.2.5 复制对象:Cloneable接口 37
3.2.4 Math 37
3.2.8 运行环境 38
3.2.9 运行时的类 41
3.3 java.awt 42
3.3.1 Component类 42
3.3.2 容器组件 43
3.3.3 按钮和其它组件 44
3.3.4 事件处理 45
3.3.5 画图 47
3.3.6 菜单 47
3.3.7 布局管理器 48
3.3.8 图形和图像 49
3.3.9 字体 50
3.4 java.applet 51
3.4.1 applet 51
3.5 java.awt.image 53
3.5.1 颜色模式 53
3.5.2 生成图像 53
3.5.3 图像过滤器 54
3.6 java.awt.peer 54
3.7 java.io 54
3.7.1 基本流 54
3.7.2 过滤流 55
3.7.3 数据I/O 56
3.7.4 使用文件 58
3.7.5 Stream Tokenizer 59
3.8 java.net 59
3.8.1 Web寻址:URL 59
3.8.2 内容处理程序 61
3.8.3 套口和Internet地址 62
3.9.2 堆栈和向量 63
3.9.3 统计用的Enumeration类 63
3.9.1 Dictionary,Hashtable和Properties 63
3.9 java.util 63
3.9.4 Observer,Observable 64
3.9.5 其它实用类 64
3.10 小结 64
第四章 创建用户自己的对象 65
4.1 从Java类创建对象 65
4.1.1 声明引用变量 66
4.1.2 创建对象 67
4.1.3 初始化对象 67
4.1.4 使用对象 68
4.2 创建用户自己的类 68
4.2.2 声明成员变量 69
4.2.1 编写类 69
4.2.3 创建方法 70
4.2.4 使用实例成员与类成员 70
4.2.5 创建构造函数和Finalize()方法 71
4.3 创建接口 72
4.4 使用无用内存回收器 73
4.4.1 什么是无用内存回收 74
4.4.2 无用内存回收器对效率的影响 75
4.5 小结 76
5.1 样本applet:定单登记系统 79
第五章 编写Java applet:定单登记系统 79
第二部分 建立Java aPPlet 79
5.2 Java AWT 80
5.2.1 Java AWT的组织结构 81
5.2.2 基于AWT的applet示例:supersimple 82
5.3 applet 84
5.3.1 Java applet与Java应用程序 84
5.4 Applet的限制 85
5.4.1 读/写限制 85
5.4.2 连接性限制 85
5.5.1 init()方法 86
5.5 applet的生命周期 86
5.5.2 start()方法 86
5.4.4 进程限制 86
5.4.3 原始库访问 86
5.5.3 stop()方法 87
5.5.4 destroy()方法 87
5.6 把applet添加到Web页面 87
5.7 Netscape Navigator和applet 88
5.7.1 在Netscape中对applet的HTML编程 88
5.7.2 参数和applet 89
5.7.3 对齐applet 89
5.7.4 显示supersimple示例applet 90
5.8 applet和HotJava 91
5.9 小结 92
5.10 第二部分后续各章简介 92
第六章 添加功能和处理事件 93
6.1 图形组件 94
6.1.1 按钮 94
6.1.2 复选框 95
6.1.3 协调的复选框:单选按钮 97
6.1.4 弹出式选项列表 98
6.1.5 滚动式选项列表 99
6.1.6 滚动条 100
6.2 开始创建定单登记系统 102
6.3 处理事件 105
6.2.1 定单登记系统出了什么问题 105
6.3.1 handleEvent()方法 107
6.4 使用action()方法 107
6.4.1 EventExample applet分析 110
6.4.2 创建基于事件的AWT程序的步骤 111
6.5 在定单登记系统中处理事件 111
6.6 到目前为止的定单登记系统 115
第七章 输入域、标签和有效性校验 117
7.1 面向文本的组件 117
7.1.1 标签 118
7.1.2 文本域 119
7.1.3 事件和文本域 120
7.1.4 文本区 122
7.1.5 事件和文本区 123
7.2 把上述概念应用于定单登记系统 123
7.3 到目前为止的定单登记系统 131
7.4 数据的有效性校验 131
7.5 小结 132
第八章 管理applet布局 133
8.1 再谈容器 133
8.1.1 面板 134
8.1.2 框架 135
8.2 对话框 142
8.2.1 对话框示例applet 143
8.2.2 文件对话框 146
8.3.1 使定单登记系统成为独立窗口 148
8.3 扩充定单登记系统 148
8.3.2 为定单登记系统添加弹出式对话框 156
8.4 AWT中的布局管理器 158
8.4.1 FlowLayout 158
8.4.2 BorderLayout 159
8.4.3 CardLayout 159
8.4.4 GridLayout 160
8.5 修整定单登记系统的布局 162
8.6 小结 169
9.1 AWT图形类 171
9.1.1 paint和update方法 171
第九章 添加图形和标识 171
9.1.2 repaint方法 173
9.2 Java图形图元 173
9.2.1 drawString方法和字体 173
9.2.2 定义颜色 174
9.2.3 设置和使用颜色 176
9.2.4 精确的字符串对齐方式 177
9.2.5 画图 177
9.2.6 填充 179
9.2.7 ADrawingExample Applet 179
9.3 显示和处理图像 180
9.3.1 获取图像 180
9.3.2 显示图像 181
9.4 最后一个组件:画布 183
9.5 扩充定单登记系统 185
9.5.1 向定单登记系统中添加一个标识 185
9.5.2 向定单登记系统添加图形分割器 187
9.6 Applet类包中的声音 188
9.6.1 play 189
9.7 在目前为止的定单登记系统 189
第十章 异常处理与浏览器交互作用 191
10.1 错误和异常处理 192
10.2 实现异常和错误处理 194
10.2.1 使用try和catch 194
10.2.2 使用finally 195
10.2.3 引发异常 196
10.2.4 使用throws关键字 197
10.2.5 声明用户自己的异常 198
10.3 在定单登记系统中使用异常 198
10.4 与浏览器的交互作用 201
10.5 定单登记系统的最后清单 204
10.6 定单登记系统的问题 218
10.7 小结 218
第十一章 使用Java读和写 219
11.1 java.io类包 219
11.2.1 InputStream 220
11.2 两个抽象类 220
11.2.2 OutputStream类 221
11.3 Java中的其它流 222
11.3.1 FileInputStream和FileOutputStream类 223
11.3.2 ByteArrayInputStream和ByteArrayOutputStream类 224
11.3.3 FilterInputStream和FilterOutputStream及其后代 224
11.3.4 DataInputStream和DataOutputStream类 226
11.3.5 PipedInputStream和PipedOutputStream类 226
11.4 处理文件 227
11.4.1 File类 227
11.4.2 随机访问文件 227
11.5 小结 228
第三部分 高级Java applet 231
第十二章 用Java.进行网络编程 231
12.1 协议集 231
12.1.1 IP 232
12.1.2 UDP 232
12.1.3 TCP 232
12.1.4 DNS 233
12.2 WWW(环球网) 233
12.3 Java中的套口 234
12.3.1 流套口类 234
12.3.2 数据报套口 239
12.3.3 一个聊天applet 242
12.4 Java中的WWW 245
12.4.1 URL类 246
12.4.2 URLConnection类 247
12.4.3 MIME类型和内容处理程序 247
12.4.4 GET方法 251
12.4.5 POST方法 252
12.5 小结 254
第十三章 一般用途类 255
13.1 本章有哪些内容 255
13.1.1 链表、队列、搜索树,以及其它动态数据结构 256
13.2 使用实用类包 257
13.3 类 258
13.3.1 BitSet 258
13.2.1 Enumeration对象 258
13.2.2 Observer 258
13.3.2 Date 261
13.3.3 Random 265
13.3.4 StringTokenizer 269
13.3.5 Vector类 270
13.3.6 Stack 275
13.3.7 Dictionary类 276
13.3.8 Hashtable 277
13.3.9 Properties 279
13.3.10 Observable 281
13.4 小结 282
第十四章 扩充Java 283
14.1 Runtime和Process类 284
14.1.1 使用Runtime执行外部程序 284
14.1.2 使用Process对象监视执行的应用程序 284
14.1.3 一个实际示例:DAOCmd 285
14.2 使用原始方法扩充Java 286
14.2.1 创建原始方法的基本机制 287
14.2.2 从原始方法调用Java 289
14.2.3 编写运行良好的原始代码 292
14.2.4 Microsoft数据访问对象(DAO)的接口 296
14.3 applet与安全性限制 300
14.3.1 Java远程方法调用 300
14.4 小结 301
第十五章 用JDBC开发数据库应用程序和Applet 303
15.1 为什么要制订Java数据库连接性(JDBC)规范 304
15.2 存储Web数据 305
15.3 提供数据访问 305
15.4 JDBC API 306
15.4.1 数据库需求 306
15.4.2 JDBC接口 307
15.5.1 计数器Applet示例 309
15.5 用JDBC接口实现简单的数据库访问 309
15.4.3 元数据接口 309
15.6 结果集和元数据接口 314
15.7 其它JDBC功能 316
15.7.1 事务处理管理 316
15.7.2 光标支持 318
15.7.3 存储过程 318
15.7.4 多个结果集 318
15.8 创建JDBC实现 318
15.8.1 实现接口 319
15.10 设计数据库应用程序 320
15.10.1 安全问题 320
15.9 扩充JDBC 320
15.10.2 构造一个三层应用程序 321
15.10.3 三层错误跟踪系统 322
15.10.4 用Java实现一个三层应用程序 322
15.11 小结 323
第十六章 Java多线程 325
16.1 什么是线程 325
16.1.1 Thread类 326
16.1.2 简单的线程例子 327
16.1.3 SimpleThreadExample输出结果 328
16.1.4 何时调用InfiniteThreadExample中的方法 329
16.2 多线程问题 332
16.2.1 什么地方出问题了 334
16.2.2 线程名和当前线程 335
16.2.3 Java的synchronized 335
16.3 同步化线程 337
16.3.1 多个锁定 339
16.4 哲学家进餐问题 341
16.4.1 死锁 341
16.4.2 哲学家进餐问题的解法 342
16.4.3 Java的wait()和notify()方法 343
16.4.4 哲学家进餐例子 343
16.5 小结 350
17.1 引言:信息时代 351
第十七章 高级图形:多媒体 351
17.1.1 Internet媒体 352
17.1.2 信息格式 352
17.2 Rotator 353
17.2.1 Update和Paint的奥妙 355
17.2.2 run方法中的Rotator 356
17.3 Omatrix和Solid类 358
17.3.1 Omatrix 358
17.4 小结:关键就是带宽 362
第十八章 严肃的应用——游戏Applet 367
18.1 计算机游戏 368
18.2 网上游戏 368
18.4.1 考查对象和数据流 369
18.3 界面设计 369
18.4 CopyCat游戏 369
18.4.2 协调CopyCat和PlayArea 371
18.4.3 处理事件 372
18.5 界面和通信 378
18.6 小结 379
第十九章 安全性问题 381
19.1 Java语言 382
19.2 Java编译器 383
19.3 Java解释器 383
19.3.2 字节代码校验程序 384
19.3.1 类加载程序 384
19.4 代码的执行 385
19.5 Java虚拟机(JVM) 385
19.5.1 字节代码指令集 386
19.5.2 JVM寄存器集 386
19.5.3 Java堆栈 386
19.5.4 无用内存回收堆 387
19.5.5 JVM内存区 387
19.6 限制因素 387
19.7 已知错误 387
19.8 未来的Java安全性 388
19.9 小结 389