第一部分 Java基础知识 1
1.Java是一种编程语言 1
2.HotJava是一个浏览器 1
3.Java是面向对象的 2
4.Java是平台独立的 2
5.Java是安全的 2
6.Java是稳固的 3
7.Java易于学习 3
8.用于Internet网的Java 3
9.用于Intranet网的Java 3
10.光盘安装Java Developer s Kit 4
11.从Internet网上下载JDK 5
12.在Mac平台上安装JDK 6
13.在Sun Solaris机上安装JDK 6
14.MAC版Java集成开发环境(IDE) 6
15.PC版Java集成开发环境 7
16.了解Java的许可问题 8
17.了解HTML标签Applet 8
18.设置小程序的大小 9
19.以百分比设置小程序的高宽 9
20.使用ALIGN属性对齐小程序 9
21.控制小程序窗口的间距 10
22.为非Java浏览器使用ALT属性 10
23.使用CODEBASE指定小程序的位置 11
24.使用小程序浏览器运行Java小程序 11
25.Java兼容于所有服务器但不兼容于所有浏览器 12
26.支持Java小程序的浏览器 12
27.下载Netscape Navigator 13
28.安装Netscape Navigator 13
29.为Java配置Netscape 13
30.使用Netscape运行Java小程序 14
31.下载Microsoft的Internet Explorer 14
32.安装Internet Explorer 15
33.为Java配置Internet Explorer 15
34.使用Internet Explorer运行Java小程序 15
35.Untrusted Java Applet Window警告 16
36.了解ClassFormatError异常 16
37.Netscape的Applet not initialized错误 16
38.注意Java小程序的α和β版 17
39.理解Java,J++,OpenJ Builder以及Cafe 17
40.如何获得Java文档 18
41.了解程序开发过程 18
42.了解文件类型 19
43.了解Java的系统控制台 19
44.建立ASCII码源文件 20
45.建立HTML源文件 20
46.使用Javac编译程序编译Java 21
47.了解Javac编译程序 21
48.Javac_g是什么? 22
49.在Windows和UNIX上编译Java源文件 22
50.在Mac平台上编译Java 22
51.了解编译程序警告和出错 23
52.优化Java的输出 23
53.把Java小程序放入服务器 24
第二部分 程序设计基础 24
54.当心局部变量太多 24
55.Windows 95及NT可能有大小写问题 24
56.Java小程序与应用程序 25
57.简单Java小程序的结构 25
58.一个“Hello,World”Java小程序 25
59.运行“Hello,World”小程序 26
60.了解小程序的关键函数 27
61.简单Java应用程序的结构 27
62.一个“Hello,World”Java应用程序 28
63.运行Java应用程序 28
64.了解Java解释程序 28
65.使用cs(Check Source)开关 29
66.了解main方法 29
67.了解语句 30
68.了解程序块 30
69.给Java程序增加语句 31
70.了解式样和缩进 31
71.了解分号 31
72.System.out.println中的简单调试消息 32
73.Java是大小写敏感的 32
74.了解逻辑错误(缺陷) 33
75.了解程序编译过程 33
76.了解文件类型 34
77.了解classes.zip文件 34
78.了解import语句 34
79.在import语句中使用星号(?) 35
80.通过分隔类加快编译速度 35
81.了解Java关键字 36
82.了解非限定与限定名 37
83.二义性名引用引起编译错误 38
84.给程序增加注释 38
85.使用注释包含程序语句 39
86.了解变量(标识符) 39
87.Java标识符的命名规则 40
88.良好的命名习惯 40
89.在申明中注释变量 41
90.了解二进制数 41
91.给变量赋值 41
92.了解Java的主要数据类型 42
93.申明同一类型的多个变量 42
94.在申明时给变量赋值 43
95.了解Java的常数值 43
96.使用十六进制或八进制整型常数 43
97.了解符号值 43
98.了解溢出 44
99.使用浮点常数值 44
100.使用双精度常数值 45
101.使用字符常数 45
102.使用串常数 45
103.了解基本类型byte 46
104.了解基本类型short 46
105.了解基本类型int 46
106.注意整数溢出 46
107.了解基本类型long 47
108.了解基本类型float 47
109.了解基本类型double 47
110.了解精度 47
111.了解基本类型char 48
112.Java中的单码 48
113.了解基本类型boolean 48
114.在变量申明过程中赋初始值 48
115.什么时候不需要限定基本类型 49
116.如何限定基本类型 49
117.字符和串常数中的换码序列 50
118.用System.out.println显示基本数据类 50
119.Java的基本数学运算 50
120.使用赋值运算符 51
121.在一条语句中链接多个赋值 52
122.注意整数除运算 52
123.变量申明中的算术运算 52
124.了解模运算 52
125.了解Java的递增运算符 53
126.了解Java的递减运算符 53
127.了解前缀和后缀递增/递减 53
128.显示十六进制或八进制值 54
129.了解优先权和结合性 54
130.用圆括号实施运算符计算次序 55
131.了解逐位或运算符 56
132.了解逐位与运算符 56
133.了解逐位异或运算符 57
134.了解逐位非运算符 57
135.执行逐位移位 57
136.使用>>>运算符 58
137.注意>>>在short和byte上的异常 58
138.用if语句测试条件 58
139.测试相等性 59
140.执行关系测试(><>=<=) 59
141.用if-else测试一个条件 59
142.用else-if测试多个条件 60
143.注意if-if-else语句 60
144.条件结果的赋值 61
145.注意boolean值的不正确用法 61
146.执行逻辑与来测试两个条件 62
147.执行逻辑或来测试两个条件 62
148.执行逻辑非来测试两个条件 63
149.了解逻辑运算符 63
150.了解三元条件运算符 63
151.Java保证逻辑表达式的最小计算 64
152.在复合语句中申明变量 64
153.使用缩进改善可读性 65
154.测试浮点值 66
155.使用while循环 66
156.使用for循环 67
157.for语句的有些部分是任选的 68
158.递增for循环中的值 68
159.控制for循环的递增 69
160.在for循环的语句中申明变量 69
161.了解死循环 69
162.中断死循环 70
163.在for循环中使用逗号 70
164.使用do循环 71
165.了解continue语句 71
166.用break语句结束循环 72
167.用switch语句测试多个条件 73
168.在switch语句中选择char类型 73
169.了解switch语句中的break语句 73
170.在switch语句中使用default情况子句 74
171.什么时候应该使用if-else而不是switch 75
172.使用函数完成具体任务 75
173.函数正常返回值 75
174.给函数传递常数 76
175.了解函数的范围 76
176.了解局部变量 76
177.了解按值调用 76
178.按值调用为什么防止参数值改变 77
179.在Java中如何进行引用调用 78
180.了解静态变量 78
181.了解递归 79
182.在Java中使用递归方法 80
183.重载方法 80
184.超越方法 81
185.了解变量范围和控制结构 82
第三部分 面向对象程序设计 82
186.类数据结构聚集数据和操作 82
187.对象是类变量 82
188.了解面向对象程序设计 83
189.了解抽象 83
190.了解封装 83
191.了解继承性 83
192.了解方法 84
193.了解方法外貌特征 84
194.了解构造器方法 84
195.重载构造器方法 85
196.了解多态性:重载类型 86
197.了解多态性:超越类型 86
198.了解抽象类 87
199.Java中的继承性 88
200.了解界面 88
201.运用于全局常数的界面 89
202.了解何时选择继承性 90
203.了解何时选择包容 90
204.限制方法和类的扩展 91
205.强行进行方法和类扩充 91
206.使用界面创建回叫方法 91
207.面向对象与过程化程序设计的比较 92
第四部分 定义您自己的类 93
208.定义您自己的类 93
209.建立一个简单的类对象 93
210.给类增加变量 94
211.Java给类成员变量赋默认值 94
212.在Java中常数化局部变量是不合法的 95
213.使用静态变量初始化块 95
214.给简单类增加方法 96
215.重载类方法 96
216.使用继承性来建立类 97
217.在Java中实现继承性和多态性 98
218.什么是超类 99
219.了解Java的this引用 99
220.了解super关键字 100
221.使用super调用父类的类方法 101
222.了解new关键字 101
223.了解instanceof关键字 101
224.限定类类型 102
225.用==比较对象实际是比较引用 102
226.了解信息隐藏 102
227.避免在类中使用太多的基本类型 103
228.了解抽象类修饰符 103
229.了解final类修饰符 104
230.了解public类修饰符 104
231.了解public字段修饰符 104
232.了解private字段修饰符 104
233.了解protected字段修饰符 104
234.了解private protected字段修饰符 105
235.了解static字段修饰符 105
236.了解final字段修饰符 105
237.了解transient字段修饰符 105
238.了解volatile字段修饰符 105
239.了解默认的构造器 106
240.了解public方法修饰符 106
241.了解private方法修饰符 106
242.了解protected方法修饰符 106
243.了解private protected方法修饰符 106
244.了解static方法修饰符 107
245.了解final方法修饰符 107
246.了解abstract方法修饰符 107
247.非法的抽象方法 107
248.了解native方法修饰符 108
249.了解synchronized方法修饰符 108
250.Java按值传递基本类型类变量 108
第五部分 Java程序设计基础 108
251.了解init方法 108
252.了解start和stop方法 109
253.了解paint方法 109
254.了解destroy方法 110
255.如何为Netscape浏览器建立尺寸可调的小程序 110
256.在状态行中显示一个串 111
257.获得小程序的输入参数 111
258.提供小程序作者信息 112
259.提供小程序参数信息 113
第六部分 Java与C/C++之间的区别 114
260.Java不支持goto语句 114
261.Java支持标号break和continue语句 114
262.Java不支持指针 114
263.Java不支持预处理器 115
264.Java按引用传递数组和对象参数 115
265.Java与C/C++命令行变元的区别 115
266.Java类型char是支持单码的16位 116
267.Java不支持unsigned关键字 116
268.布尔类型与整数类型间的转换 116
269.Java程序自动释放已被分配的内存 117
270.Java循环条件必须是布尔类型 117
271.Java是多线程的 117
272.Java有一条控制线程的synchronized语句 117
273.Java不支持结构或联合 118
274.Java不支持void?类型 118
275.Java不支持Sizeof运算符 118
276.Java不支持=和==运算符混合 118
第七部分 语言基础 119
277.创建对象 119
278.主要数据类型的对象包装 119
279.比较对象与比较基本数据类型 120
280.创建字符对象 120
281.确定一个字符是否是一个数字 120
282.确定一个字符是大写还是小写 121
283.确定一个字符是否是一个空格 121
284.把一个字符转换成一个数字值 121
285.比较字符对象 122
286.了解同源体与拷贝之间的区别 122
287.用克隆方法复制对象 123
288.Java不提供默认的克隆方法 123
289.创建串对象 123
290.了解隐含和显式的串申明 123
291.把字符数组转换成串 124
292.把串转换成字符数组 124
293.拷贝串 124
294.把一个串并置到另一个串上 125
295.使用“+”运算符并置串 125
296.比较两个串 126
297.确定两个串是否相等 126
298.确定两个串(不区分大小写)是否相等 127
299.确定两个串的部分是否相等 127
300.获取串中的单个字符 127
301.获得串长度 127
302.获得串的一部分 128
303.替换串中的字符 128
304.查找一个字符在串中的第一次出现 128
305.查找一个字符在串中的最后一次出现 129
306.查找一个串在另一个串中的第一次出现 129
307.查找一个串在另一个串中的最后一次出现 129
308.检查串前缀 130
309.检查串后缀 130
310.把串转换成小写或大写 130
311.从串中删去前导或后随空白区间 130
312.把基本数据类型转换成串 131
313.了解串引用、不变性及共享 131
314.Java如何使用串类和串缓冲区类 132
315.使用串缓冲区类建立新串 132
316.把串缓冲区对象转换成串 132
317.给串缓冲区对象附加和插入文本 132
318.串缓冲区容量与长度之间的区别 133
319.检查和设置串缓冲区长度 133
320.建立布尔对象 134
321.把“True”和“False”串转换成布尔值 134
322.把布尔值转换成“True”和“False”串 134
323.使用booleanValue方法 134
324.建立整数对象 135
325.把整数转换成其它数据类型 135
326.如何比较整数对象 135
327.把其它数据类型转换成整数对象 135
328.获得数字对象的最小和最大值 136
329.处理浮点数对象 136
330.浮点到串转换的限制 136
331.建立浮点数格式化类 137
332.格式化美元值浮点数 138
333.格式化百分值浮点数 138
第八部分 Java中的数学函数 139
334.求一个数的绝对值 139
335.使用sqrt方法 139
336.使用cos方法 139
337.使用sin方法 139
338.使用tan方法 140
339.使用acos方法 140
340.使用asin方法 140
341.使用atan方法 141
342.把直角坐标转换成极坐标 141
343.把浮点值四舍五入成整数 141
344.使用floor方法 142
345.使用ceil方法 142
346.把浮点值向上或向下四舍五入 142
347.处理指数 143
348.获取e或π的值 143
349.计算浮点除的余数 143
350.计算自然对数 143
351.确定最大和最小值 143
352.计算XN的结果 144
353.建立随机浮点数 144
354.了解伪随机与真随机 144
355.设置一个随机数生成器 145
356.建立随机浮点数 145
357.用Gaussian分布建立随机数 145
358.控制随机整数的范围 146
359.建立指定范围内的随机整数 146
第九部分 Java中的日期函数 146
360.用日期类获得当前日期 146
361.指定2000年后的日期要小心 147
362.用日期类建立您自己的日期/时间 147
363.使用日期类找出周几 147
364.注意日期类0为基的对象 148
365.用日期类获得当前时间 148
366.纪元日指什么? 148
367.设置以毫秒为单位的当前时间 148
368.用getTime测量程序执行速度 149
369.用after、before和equals方法比较日期 149
370.把串转换成日期 150
371.计算两个日期之间的天数 150
372.建立DayInMonth方法 151
373.了解不同的日期标准 151
374.在依赖日期函数时要小心 151
375.使用DOS的TZ环境变量 152
第十部分 使用数组存储数据 152
376.了解数组 152
377.Java中的数组申明 152
378.建立基本数据类型的数组 153
379.初始化基本数据类型的数组 153
380.了解数组索引 153
381.给数组元素赋值 154
382.寻找数组的长度 154
383.了解数组引用 154
384.建立对象数组 155
385.了解多维数组 155
386.申明多维数组 155
387.建立多维数组 156
388.遍历多维数组 156
389.了解不对称数组 157
390.初始化多维数组 158
391.在数组中查找一个指定值 158
392.了解二分查找 159
393.使用二分查找 159
394.数组分类 160
395.了解冒泡分类 160
396.冒泡分类的运用 161
397.了解快速分类 162
398.快速分类的使用 162
399.在基本数据类型的数组上使用arraycopy 163
400.在对象数组上使用arraycopy 164
401.分类数组中的不同对象 165
第十一部分 事件处理 166
402.了解事件驱动程序 166
403.了解事件类 167
404.了解实用方法 167
405.使用mouseDown方法 167
406.使用mouseUp方法 168
407.使用mouseDrag方法 169
408.使用mouseMove方法 169
409.用clickCount检测双击 170
410.检测双击的另一种途径 170
411.检测鼠标单击变换键 171
412.了解多按钮鼠标问题 172
413.使用mouseEnter和mouseExit 172
414.了解键盘事件 173
415.使用keyDown方法 173
416.使用keyUp方法 173
417.检测多个修饰键 174
418.检测键盘修饰键的另一种手段 174
419.检测专用键 175
420.使用handleEvent方法 175
421.如何不处理事件 177
422.确保您能退出应用程序 177
423.检测窗口什么时候被图标化 178
第十二部分 抽象窗口化工具箱 179
424.了解抽象窗口化工具箱(AWT) 179
425.查看AWT类层次结构 179
426.了解图形对象 179
427.了解Java的坐标系统 180
428.画串 180
429.画字符 181
430.用translate方法设置原点 181
431.画直线 182
432.画矩形 182
433.画一个圆角矩形 183
434.用drawRoundRect方法画环 183
435.画带颜色的图形 184
436.使用预定义颜色 185
437.建立新颜色 185
438.改变默认的小程序背景色 186
439.画填色的矩形 187
440.画填色的圆角矩形 187
441.建立简单的直方图表 188
442.画椭圆 189
443.用drawOval方法画圆 190
444.画填色的椭圆 190
445.画圆弧 191
446.画着色圆弧 192
447.画饼图 192
448.画多边形 194
449.画着色多边形 194
450.画3维矩形 195
451.画着色的3维矩形 196
452.实现您自己的3维矩形 196
453.使用darker和brighter方法 197
454.找出需要更新的屏幕区 198
455.建立矩形 198
456.了解点类和尺寸类 199
457.检查点是否在矩形内 199
458.检查两个矩形是否交叉 200
459.使用intersection和union方法 201
460.建立多边形 201
461.检查一个点是否在一个多边形内 201
462.找出一个多边形的边界框 202
463.建立字体 203
464.Java中的可用字体 203
465.用不同的字休画图 204
466.获得可用字体列表 205
467.查找有关一种字体的信息 205
468.了解字体度量 206
469.如何获得字体度量信息 206
470.给文本加下划线 206
471.用多种字体显示一行文本 207
472.对齐文本 208
473.从Web网上获取GIF图象 210
474.画图象 210
475.在Java中拉长图象 211
476.匹配Java背景色与HTML背景色 212
477.匹配Java背景模式与HTML页面背景模式 212
478.清除屏幕区域 213
479.使用repaint方法 214
480.拷贝屏幕区域 215
481.使用getGraphics方法 216
482.使用XOR绘画模式 216
483.设置矩形剪切区 217
484.使用create方法拷贝图形对象 218
485.处理图形对象的重要性 219
486.了解AWT组件 220
487.建立标签 220
488.了解小程序布局 221
489.设置标签对齐方式 221
490.建立命令按钮 222
491.处理按钮事件 222
492.改变按钮的标签 223
493.读取按钮的标签 224
494.建立检查框 224
495.获取并设置检查框的状态 224
496.处理检查框事件 225
497.使用CheckBoxGroup建立可选按钮组 225
498.获取CheckBoxGroup(可选按钮)状态 226
499.建立文本字段 227
500.使用文本字段作为口令输入 228
501.检测文本字段中<Enter>键 229
502.建立一个文本区 229
503.在文本区中插入文本 230
504.把文本附加到一个文本区对象上 230
505.替换文本区对象中的文本 231
506.了解文本组件类 232
507.获取已选取的文本 232
508.获取文本选择位置 233
509.选取文本 233
510.使能和禁止文本编辑 234
511.建立滚动列表 234
512.给列表增加条目 235
513.从列表中获取已选的条目 236
514.选择列表中的多个条目 236
515.处理列表条目选择事件 237
516.从列表中删除条目 238
517.替换列表中的条日 238
518.获取列表中的所有条目 239
519.从程序中设置列表的已选取条目 239
520.检测列表条目上的双击事件 240
521.建立弹出式选择菜单 241
522.从弹出式选择菜单中获取已选取条目 241
523.处理选择事件 242
524.有关使用FlowLayout的进一步说明 243
525.使用BorderLayout管理屏幕布局 243
526.增加BorderLayout布局中组件间的间隙 244
527.使用GridLayout 244
528.使用add方法给容器增加组件 245
529.组合多种布局来建立您的用户界面 246
530.从布局中删除组件 247
531.使用CardLayout 249
532.CardLayout中有关翻动页面的进一步说明 250
533.了解GridBagLayout 252
534.了解GridBagConstraints的字段 253
535.了解weightx和weighty字段 254
536.了解GridBagConstraints中的fill字段 255
537.了解GridBagConstraints中的anchor字段 255
538.了解ipadx和ipady字段 256
539.了解GridBagConstraints中的insets字段 256
540.不用布局管理器的组件放置 257
541.建立滚动条 258
542.使用滚动条事件 259
543.获取和设置滚动条位置 260
544.设置滚动条递增量 261
545.设置新滚动条的最大和最小值 261
546.使用Canvas类 261
547.用滚动条滚动图象的示例 262
548.禁止和使能组件 264
549.显示和隐藏组件 265
550.设置AWT组件的背景色 265
551.设置AWT组件的前景色 266
552.悬起组件(按钮)字体 266
553.获取组件的尺寸和位置 267
554.建立一个贷款计算小程序 268
555.建立一个带有数据有效性验证的输入表 270
556.了解输入焦点 271
557.使用Tab键在输入字段间移动 271
558.建立框 272
559.使用dispose方法消除框对象 273
560.使用框建立带有GUI的Java应用程序 274
561.布局管理器在小程序与应用程序间的差异 275
562.建立一个复杂的利息计算应用程序 275
563.改变光标 277
564.设置框标题 278
565.改变图标图象 279
566.给框增加下拉式菜单 279
567.跟踪菜单项事件 281
568.使用分隔符行分隔菜单项 281
569.如何建立子菜单 283
570.给菜单增加检查框项 284
571.设置和获取检查框菜单的状态 285
572.禁止和使能菜单项 286
573.删除菜单项 286
574.统计一个菜单中的项数 287
575.用postEvent方法仿真菜单选择 287
576.建立对话框 289
577.设置对话框标题 290
578.了解pack方法 291
579.建立about对话框 291
580.处理来自对话框的用户输入 293
581.处理来自模态对话框的用户输入 294
582.把文件对话框类用于文件选择 296
583.文件对话框界面是平台相关的 296
584.从文件对话框界面中获取信息 297
585.如何建立Save文件对话框 298
586.使用setFile和setDirectory方法 299
587.用文件名过滤器显示特定类型的文件 299
588.指出当前屏幕的尺寸和分辨率 300
589.如何在屏幕上居中对话框 300
590.了解peer类 301
第十三部分 多媒体程序设计 301
591.播放声音剪辑 301
592.使用AudioClip类 302
593.停止声音剪辑 302
594.循环声音剪辑 302
595.建立一个钢琴小程序 303
596.把.WAV文件转换成.AU文件格式 304
597.建立简单动画 305
598.滚动文本动画 306
599.用图象建立简单动画 306
600.超越update方法降低闪动 308
601.使用剪辑区改进动画 308
602.使用透明GIF文件 309
603.用双缓冲增强动画 310
604.了解图象浏览器 312
605.超越imageUpdate方法来检测图象装入过程 312
606.获取图象的尺寸 313
607.使用MediaTracker顶装图象 314
608.在装入图象时设置时间限制 316
609.如何建立推进特殊效果 316
610.了解Java成象界面 318
611.了解默认颜色模型 319
612.了解直接颜色模型 319
613.使用MemoryImagcSource建立图象 319
614.了解索引颜色模型 320
615.使用索引颜色模型建认图象 320
616.使用pixelGrabber类提取象素值 321
617.获取独立的颜色成分 323
618.了解颜色空间(RGB与HSB) 323
619.使用颜色空间转换方法 324
620.使用图象过滤器 324
621.使用RGBImageFilter 325
622.建立透明颜色过滤器类 327
623.建立淡入动画特殊效果 327
624.建立您自己的图象过滤器 330
625.加深图象 330
第十四部分 3维图形 333
626.编写3维小程序和应用程序 333
627.了解3维坐标系统 333
628.了解向量 334
629.计算向量的大小 334
630.增加向量 335
631.计算点乘积 336
632.计算交积 337
633.了解视点 337
634.了解矩阵 338
635.实现3维矩阵 338
636.实现3维点 339
637.建立平移矩阵 339
638.使用平移矩阵 339
639.建立缩放矩阵 340
640.使用缩放矩阵 340
641.建立X旋转矩阵 341
642.建立Y旋转矩阵 341
643.建立Z旋转矩阵 342
644.使用旋转矩阵 342
645.建立矩阵相乘方法 342
646.并置两个矩阵 344
647.了解正交变换 344
648.不解σ、η、ω角 345
649.建立正交变换矩阵 345
650.建立立方体类 345
651.从3维到2维的转换(正交) 347
652.平移3维对象 348
653.缩放3维对象 348
654.旋转3维对象 349
655.了解背而切除 349
656.计算表平面的正交向量 349
657.进行背面切除 349
658.了解透视 350
659.举例透视矩阵 351
660.用于透视对象的变换矩阵 351
661.从3维到2维的转换(透视) 352
第十五部分 流I/O操作 352
662.了解I/O流 352
663.使用文件类 353
664.使用文件输入流读取文件 353
665.处理I/O异常 354
666.从输入流中读取字节 354
667.关闭流 355
668.当读取输入流时跳过若干字节 355
669.了解数据输入流 356
670.使用数据输入流读取一行 356
671.了解单字化过程 357
672.使用串单字化器 357
673.遍历单字列表 358
674.找出串单字化器中的单字个数 358
675.动态改变单字分隔符 358
676.用单字化器剖析数据 359
677.用行号输入流跟踪行号 360
678.了解序列输入流 361
679.使用文件输出流写文件 361
680.写字节到输出流上 362
681.使用数据输出流 362
682.使用随机存取文件 364
683.使用seek查找随机存取文件中的信息 364
684.了解打印流 365
685.使用字节数值输入/输出流 365
686.使用串缓冲区输入流 366
687.了解缓冲I/O流 367
688.使用mark和reset方法预读入数据 367
689.使用回压输入流 368
690.使用打印流打印的进一步说明 368
691.使用文件类获取文件路径信息 369
692.获取平台相关的文件分隔符 369
693.在文件路径中小心使用反斜杠 369
694.列出目录中的文件 370
695.在list方法中使用文件名过滤器 370
696.获取文件的尺寸 371
697.获取文件的修改时间 371
698.创建目录 372
699.创建文件路径中的所有目录 372
700.重新命名文件 372
701.确定文件的读写访问权 373
702.删除文件 373
703.一个递归目录列表器 373
704.了解运行长度编码数据压缩 375
705.建立您自己的RLE过滤器输出流 375
706.建立您自己的RLE过滤器输入流 376
707.获得控制台输入 378
708.了解错误流 378
第十六部分 异常处理 379
709.了解异常 379
710.了解throw和catch 379
711.了解异常子类 379
712.抛出异常 380
713.捕获异常 380
714.捕获多个异常 381
715.了解try块 382
716.了解隐含抛出 382
717.了解代码绕过 382
718.使用finally块 383
719.指定异常 383
720.沿层次树向上发送异常 384
721.了解异常与继承 385
722.不要排除所有异常 385
723.建立您自己的异常 385
724.使用getMessage方法 385
725.传递异常中的数据 386
726.扩展正确的异常 387
727.什么是控制线程 387
第十七部分 线程程序设计 387
728.了解多线程化 387
729.了解线程的状态 388
730.实现线程(更常见的方法) 389
731.实现线程(更少见的方法) 389
732.启动线程 390
733.使用run方法 390
734.迫使线程睡眠 390
735.从线程外调用sleep方法 391
736.改变线程特性 391
737.了解线程队列 392
738.了解利己线程和好线程 392
739.与其它线程共享时间 393
740.如何挂起和继续线程 393
741.同步线程间的数据共享 394
742.同步数据的另一种方法 395
743.等待同步数据 396
744.使用wait和notify方法 396
745.了解线程饥饿 397
746.了解死锁 398
747.检查线程状态 398
748.了解小程序中的线程 398
749.处理Web浏览器尺寸调整操作 399
750.建立线程组 400
751.访问线程组中的线程 400
752.使用默认线程组 400
753.线程的平台相关性 401
754.避免I/O封锁 402
755.了解daemon线程 402
756.建立计时器线程 402
第十八部分 动态数据结构 404
757.了解链表 404
758.构造单链表 404
759.遍历单链表 405
760.在单链表的中间插入表项 406
761.从单链表中删除元素 407
762.构造双链表 408
763.在双链表中间插入元素 409
764.从双链表中间删除元素 409
765.构造一个通用双链表类 410
766.把链表保存到文件上 413
767.从文件中装入链表 414
768.了解队列 414
769.实现队列 415
770.了解二叉树 416
771.建立二叉树 416
772.二叉树示例 417
773.了解向量 419
774.在Java中使用向量 419
775.计算向量中的元素个数 420
776.使用elementAt方法获取特定元素 420
777.在向量中存储基本数据类型 421
778.设置和递增向量存储容量 421
779.在向量中间插入元素 422
780.从向量中删除元素 422
781.在向量中搜索对象 422
782.在同一个向量中存储不同类型的对象 423
783.控制向量类来保护数据字段 424
784.了解散列表 425
785.在Java中使用散列表 425
786.设置散列表存储容量和装入因子 426
787.使用枚举访问散列表元素 426
788.了解堆栈 427
789.在Java中使用堆栈 427
790.搜索栈中的元素 428
791.构造一个基于栈的计算器 428
792.了解位组 430
793.在Java中使用位组 431
794.给位组运用逻辑运算 431
795.了解特性列表 432
796.建立特性列表 432
797.从特性列表中获取特性 432
798.使用枚举访问特性 433
799.从特性列表中装入特性 434
800.保存特性列表到文件上 434
801.设置特性默认值 435
802.使用特性列表定制应用程序 436
803.使用getProperty获取特定系统变量 437
804.使用getProperty获取所有系统特性 437
805.实现枚举界面 438
第十九部分 网络程序设计 439
806.了解网络 439
807.了解Internet网 439
808.了解TCP/IP 440
809.了解客户-服务器应用 440
810.了解协议 440
811.了解TCP/IP协议 440
812.了解Internet地址 441
813.了解域名 441
814.了解InetAddress类 442
815.获取局部主IP地址 442
816.从域名中获取IP地址 442
817.了解端口数 443
818.了解统一资源定位器 444
819.了解统一资源标识符 444
820.编码URL串 445
821.在Java中建立URL 445
822.使用showDocument显示新文档 446
823.在浏览器中显示HTML文档的不同方法 446
824.获取小程序的HTML页面的URL 447
825.获取小程序本身的URL 447
826.读取Internet上的文件 448
827.了解内容类型和子类型 448
828.了解内容处理器 449
829.使用getContent方法 449
830.支持文件的内容类型 450
831.建立您自己的内容处理器 450
832.了解服务器与端口间的关系 450
833.了解套接字连接 450
834.Java客户如何建立套接字连接 451
835.建立serverSocket 451
836.套接字连接间的流 451
837.服务器如何给客户发送串 452
838.客户如何从服务器接收串 452
839.如何关闭套接字连接 452
840.在本地机上测试客户-服务器应用程序 453
841.使用本地回送地址 453
842.了解小程序客户的限制 453
843.用小程序浏览器测试小程序客户 454
844.了解服务器为什么应该是多线程的 454
845.实现多线程服务器 454
846.了解客户为什么应该是多线程的 455
847.单个文件中的客户-服务器示例 455
848.了解SMTP协议 457
849.从Java应用程序中发送e-mail 457
850.如何使用代理服务器 459
851.连接闲谈区 459
852.建立您自己的闲谈协议 459
853.建立闲谈小程序的界面 460
854.处理闲谈小程序的事件 461
855.处理从闲谈服务器那里接收到的消息 462
856.闲谈服务器如何接受客户 464
857.创建闲谈服务器的客户线程 465
858.实现chatServer方法 467
859.了解CGI-Bin正本 468
860.从小程序中运行CGI-Bin(GET) 468
861.从小程序中运行CGI-Bin(POST) 469
862.了解Java CGIBin正本 469
第二十部分 内存管理 470
863.了解垃圾收集过程 470
864.找出自由内存数 470
865.找出总内存数 471
866.帮助垃圾收集 471
867.实施垃圾收集 471
868.使用Java解释程序关闭垃圾收集 471
869.了解finalize(终结)方法 471
870.实施finalize方法 472
871.链接终结器 472
第二十一部分 Java数据库连接(JDBC) 472
872.什么是关系数据库? 472
873.关系数据库在网络上的作用 473
874.了解SQL 473
875.了解SQL SELECT语句 473
876.带有列选择的SQL数据库检索 474
877.带有行选择的SQL数据库检索 474
878.SQL连接操作 475
879.SQL数据库更新 475
880.SQL数据库插入 476
881.建立表 476
882.什么是JDBC 476
883.了解JDBC驱动程序 477
884.什么是JDBC子协议名 477
885.了解小程序局限性如何影响JDBC 477
886.如何指定JDBC URL 478
887.ODBC数据库的JDBC URL 478
888.在JDBC URL中使用命名服务器 478
889.连接数据库 478
890.如何作SQL查询 479
891.使用ResultSet获取查询结果 479
892.如何使用getxxx访问不同数据类 480
893.了解从左到右读取且仅读一次规则 480
894.如何使用wasNull检测空值 480
895.了解SQL到Java数据类型的映射 481
896.使用输入流读取大数据元素 481
897.使用preparedStatement 482
898.了解setxxx方法 482
899.选择正确的setxxx方法 483
900.设置参数位空值 483
901.了解数据截舍 483
902.了解java.sql.Numeric包 484
903.了解java.sql.Date包 484
904.了解java.sql.Time包 484
905.了解java.sql.Timestamp类 484
第二十二部分 对象串行化 484
906.了解对象串行化 484
907.把对象写到流上 485
908.从流中读取对象 485
909.把一组对象写到流上 486
910.从流中读取一组对象 486
911.写入一组不同类型的对象 486
912.读取一组不同类型的对象 487
913.串行化引用其它对象的对象 488
914.并行化引用其它对象的对象 489
915.了解持续性 489
916.串行化带有多个引用的对象 489
917.并行化带有多个引用的对象 489
918.使用Java的对象串行化库 489
919.安装对象串行化库 490
920.了解ObjectOutputStream 490
921.所有writeObject方法 490
922.了解ObjectInputStream构造器 491
923.所有readObject方法 491
924.测试对象串行化库 491
925.对象串行化库适合于什么 493
第二十三部分 Java安全性 493
926.小程序安全限制的概述 493
927.小程序限制为什么是严格的 493
928.检测小程序是否能连接到主机上 494
929.检测Java程序是否能读取文件 494
930.检测小程序是否能写文件 494
第二十四部分 调试Java 495
931.用JDB调试Java 495
932.在类上启动JDB 495
933.把JDB附加到已运行的解释程序上 495
934.基本JDB命令 495
935.JDB如何处理异常 496
936.JDB选项 496
937.JDB环境变量 496
938.使用小程序浏览器调用Java调试程序 497
939.用javap反汇编Java类 497
940.javap选项 497
941.javap环境变量 497
942.安全性与JDB 498
943.样本JDB会话 498
944.使用JDB调试样本小程序 498
945.使用traceInstructions 499
946.使用traceMethodCalls 499
947.使用栈跟踪进行调试 500
948.在Netscape中更新和重新装入小程序 500
第二十五部分 建立定制控制 500
949.了解如何建立定制控制 500
950.了解图形按钮 501
951.实现定制的图形按钮 501
952.使用定制的图形按钮 502
953.了解小程序中的定制控制 503
954.了解控制球控制 504
955.实现定制的控制球 504
956.了解定制的控制球界面 505
957.使用定制的控制球控制 506
958.使用仪表控制 506
959.构造定制的仪表控制 507
960.使用定制的仪表控制 508
961.了解滑标控制 509
962.构造定制的滑标控制 509
963.了解滑标压条动画 511
964.了解定制的滑标界面 512
965.使用定制的滑标控制 512
966.了解进度表 513
967.构造定制的进度表 513
968.使用定制的进度表 514
第二十六部分 集成 515
969.了解一个2维画图程序 515
970.实现一个浮动工具条类 515
971.使用浮动工具条类 516
972.实现一个boundBox类 517
973.用boundBox类画一个矩形 518
974.实现一个gridArea类 518
975.使用gridArea类画网格 519
976.画一个卡在网格上的框 519
977.扩展矩形类 520
978.画新的colorRect类 521
979.选择和撤选矩形 521
980.从已画对象列表中删除矩形 522
981.实现moveRect类 522
982.使用moveRect类 523
983.改变光标 524
984.在画图程序中实现undo和redo 525
985.构造数字时钟的技术 526
986.样本数字时钟 526
987.用javadoc建立程序文档 528
988.给javadoc所生成的文档增加注释 528
989.用于javadoc特殊标签 529
第二十七部分 结束 529
990.为什么Java虚拟机是重要的 529
991.了解远程方法调用(RMI) 530
992.远程方法调用背后的详情 530
993.RMI与Netscape的兼容问题 530
994.寻找有关远程方法调用(RMI)的详情 530
995.了解Mac OS Runtime for Java(MRJ) 531
996.Java JIT编译程序 531
997.什么是java2c译码器 531
998.何处寻找Sun公司的正式错误列表 532
999.了解Java IDL系统 532
1000.了解Java Beans 532
1001.Internet网上的Java资源 533