第1周课程 Java语言 2
第1天课程 Java初步 2
1.1 Java语言 2
1.1.1 Java的历史 2
1.1.2 Java概述 3
1.1.3选择一种开发工具 3
1.1.4软件开发包 4
1.2面向对象编程 4
1.3对象和类 5
1.3.1对象重用 5
1.4属性和行为 7
1.4.1对象的类属性 7
1.4.2对象的类行为 7
1.4.3创建类 8
1.4.4运行程序 9
1.5组织类和类行为 11
1.5.1继承 11
1.5.2创建类层次结构 13
1.5.3使用继承 14
1.5.4单继承和多重继承 15
1.5.5接口 15
1.5.6包 16
1.6总结 16
1.7问与答 17
1.8小测验 17
1.8.1 问题 17
1.8.2答案 17
1.8.3认证练习 17
1.9练习 18
第2天课程 Java编程基础 19
2.1语句和表达式 19
2.2变量和数据类型 20
2.2.1创建变量 20
2.2.2给变量命名 21
2.2.3变量类型 21
2.2.4给变量赋值 22
2.2.5常量 22
2.3注释 23
2.4字面量 23
2.4.1数字字面量 24
2.4.2布尔字面量 24
2.4.3字符字面量 24
2.4.4字符串字面量 25
2.5表达式和运算符 26
2.5.1算术运算符 26
2.5.2再谈赋值 27
2.5.3递增和递减运算符 28
2.5.4比较运算符 29
2.5.5逻辑运算符 29
2.5.6运算符优先级 30
2.6字符串运算 31
2.7总结 31
2.8问与答 32
2.9小测验 33
2.9.1问题 33
2.9.2答案 33
2.9.3认证练习 33
2.10练习 33
第3天课程 对象 35
3.1创建新对象 35
3.1.1使用new 35
3.1.2 new的功能 36
3.1.3内存管理 37
3.2访问和设置类变量和实例变量 37
3.2.1获取值 37
3.2.2修改值 37
3.2.3类变量 38
3.3调用方法 39
3.3.1嵌套方法调用 40
3.3.2类方法 40
3.4对象的引用 41
3.5对象和基本数据类型的转换和强制类型转换 42
3.5.1强制转换基本类型 43
3.5.2强制转换对象 43
3.5.3基本类型和对象之间的转换 44
3.6比较对象值和类 44
3.6.1 比较对象 45
3.6.2判断对象的类 46
3.7总结 46
3.8问与答 46
3.9小测验 47
3.9.1 问题 47
3.9.2答案 47
3.9.3认证练习 47
3.10练习 48
第4天课程 数组、逻辑和循环 49
4.1数组 49
4.1.1声明数组变量 49
4.1.2创建数组对象 50
4.1.3访问数组元素 50
4.1.4修改数组元素 51
4.1.5多维数组 52
4.2块语句 53
4.3 if条件语句 53
4.4 switch条件语句 54
4.5 for循环 57
4.6 while和do循环 59
4.6.1 while循环 59
4.6.2 do...while循环 60
4.7跳出循环 61
4.7.1标号 61
4.7.2条件运算符 62
4.8总结 62
4.9问与答 62
4.10小测验 63
4.10.1 问题 63
4.10.2答案 63
4.10.3认证练习 63
4.11练习 64
第5天课程 创建类和方法 65
5.1定义类 65
5.2创建实例变量和类变量 65
5.2.1定义实例变量 65
5.2.2类变量 66
5.3创建方法 66
5.3.1定义方法 66
5.3.2关键字this 67
5.3.3变量作用域和方法定义 68
5.3.4将参数传递给方法 69
5.3.5类方法 70
5.4创建Java应用程序 71
5.4.1助手类 71
5.5 Java应用程序和命令行参数 71
5.5.1将参数传递给Java应用程序 72
5.5.2在Java程序中处理参数 72
5.6创建名称相同但参数不同的方法 73
5.7构造方法 75
5.7.1基本的构造方法 76
5.7.2调用另一个构造方法 76
5.7.3重载构造方法 77
5.8覆盖方法 78
5.8.1创建覆盖现有方法的方法 78
5.8.2调用原来的方法 79
5.8.3覆盖构造函数 79
5.9结束方法 80
5.10总结 81
5.11 问与答 81
5.12小测验 82
5.12.1 问题 82
5.12.2答案 82
5.12.3认证练习 82
5.13练习 83
第6天课程 包、接口和其他类特性 84
6.1限定符 84
6.1.1控制对方法和变量的访问 85
6.2静态变量和方法 88
6.3 Final类、方法和变量 89
6.3.1变量 89
6.3.2方法 90
6.3.3类 90
6.4抽象类和方法 90
6.5包 91
6.6使用包 91
6.6.1完整的包名和类名 92
6.6.2 import声明 92
6.6.3名称冲突 93
6.6.4 CLASSPATH和类的位置 93
6.7创建自己的包 93
6.7.1选择包名 93
6.7.2创建文件夹结构 94
6.7.3将类加入到包中 94
6.7.4包和类访问控制 94
6.8接口 95
6.8.1单继承存在的问题 95
6.8.2接口和类 95
6.8.3实现和使用接口 95
6.8.4实现多个接口 96
6.8.5接口的其他用途 97
6.9创建和扩展接口 97
6.9.1新接口 97
6.9.2接口中的方法 98
6.9.3扩展接口 98
6.9.4创建一个网上商店 99
6.10内部类 103
6.11总结 104
6.12问与答 104
6.13小测验 105
6.13.1 问题 105
6.13.2答案 105
6.13.3认证练习 105
6.14练习 106
第7天课程 线程和异常 107
7.1异常 107
7.1.1异常类 108
7.2管理异常 109
7.2.1异常一致性检测 109
7.2.2保护代码和捕获异常 109
7.2.3 finally子句 111
7.3声明可能引发异常的方法 112
7.3.1 throws子句 112
7.3.2应引发哪种异常 113
7.3.3传递异常 113
7.3.4 throws和继承 114
7.4创建并引发自己的异常 114
7.4.1引发异常 114
7.4.2创建自己的异常 115
7.4.3组合使用throws、try和throw 115
7.5何时使用或不使用异常 115
7.5.1什么时候使用异常 116
7.5.2什么时候不使用异常 116
7.5.3糟糕的异常使用方式 116
7.6断言 116
7.7线程 117
7.7.1编写线程化程序 118
7.7.2线程化应用程序 119
7.7.3终止线程 121
7.8总结 122
7.9问与答 122
7.10小测验 123
7.10.1 问题 123
7.10.2答案 123
7.10.3认证练习 123
7.11练习 124
第2周课程 Java类库 126
第8天课程 数据结构 126
8.1数据结构 126
8.2 Java数据结构 126
8.2.1 Iterator 127
8.2.2位组 128
8.2.3 Vector 130
8.2.4堆栈 132
8.2.5 Map 133
8.2.6散列表 133
8.3总结 137
8.4问与答 137
8.5小测验 137
8.5.1问题 137
8.5.2答案 138
8.5.3认证练习 138
8.6练习 138
第9天课程 使用Swing 140
9.1创建一个应用程序 140
9.1.1创建界面 141
9.1.2开发框架 142
9.1.3关闭窗口 144
9.1.4创建组件 145
9.1.5将组件加入到容器中 146
9.2使用组件 147
9.2.1图标 147
9.2.2标签 148
9.2.3文本框 149
9.2.4文本区域 149
9.2.5可滚动窗格 150
9.2.6滚动条 151
9.2.7复选框和单选按钮 151
9.2.8下拉式列表和组合框 153
9.3总结 154
9.4问与答 154
9.5小测验 155
9.5.1问题 155
9.5.2答案 156
9.5.3认证练习 156
9.6练习 156
第10天课程 创建Swing界面 157
10.1 Swing的特性 157
10.1.1设置外观 157
10.1.2标准对话框 159
10.1.3应用程序Info 162
10.1.4滑块 164
10.1.5滚动窗格 165
10.1.6工具栏 166
10.1.7进度条 168
10.1.8菜单 170
10.1.9选项卡窗格 171
10.2总结 172
10.3问与答 172
10.4小测验 172
10.4.1 问题 172
10.4.2答案 173
10.4.3认证练习 173
10.5练习 173
第11天课程 在用户界面上排列组件 175
11.1基本的界面布局 175
11.1.1布置界面 175
11.1.2顺序布局 176
11.1.3网格布局 177
11.1.4边框布局 178
11.2使用多个布局管理器 180
11.3卡片布局 180
11.4网格袋布局 181
11.4.1设计网格 182
11.4.2创建网格 182
11.4.3定义比例 184
11.4.4加入并排列组件 185
11.4.5调整 186
11.5单元格padding和insets 188
11.6总结 188
11.7问与答 188
11.8小测验 189
11.8.1 问题 189
11.8.2答案 190
11.8.3认证练习 190
11.9练习 190
第12天课程 响应用户输入 191
12.1事件监听器 191
12.1.1设置组件 191
12.1.2事件处理方法 192
12.2使用方法 194
12.2.1行为事件 194
12.2.2调整事件 194
12.2.3焦点事件 196
12.2.4选项事件 196
12.2.5键盘事件 197
12.2.6鼠标事件 198
12.2.7鼠标移动事件 198
12.2.8窗口事件 198
12.3创建一个Swing应用程序 199
12.3.1设计布局 199
12.3.2定义子面板 201
12.3.3 RGB和HSB之间的转换 202
12.3.4处理用户事件 204
12.4总结 206
12.5问与答 207
12.6小测验 207
12.6.1 问题 207
12.6.2答案 207
12.6.3认证练习 208
12.7练习 208
第13天课程 颜色、字体和图形 210
13.1 Graphics2D类 210
13.1.1图形坐标系 211
13.1.2绘制文本 211
13.1.3获取字体的信息 212
13.2颜色 214
13.2.1使用Color对象 214
13.2.2检测和设置当前颜色 214
13.3绘制直线和多边形 215
13.3.1用户和设备坐标空间 215
13.3.2指定渲染属性 216
13.3.3创建要绘制的对象 217
13.3.4绘制对象 219
13.4总结 222
13.5问与答 222
13.6小测验 222
13.6.1 问题 222
13.6.2答案 222
13.6.3认证练习 223
13.7练习 223
第14天课程 编写Java小程序 224
14.1小程序和应用程序之间的差别 224
14.2小程序的安全限制 225
14.2.1选择Java版本 225
14.3创建小程序 226
14.3.1主要的小程序行为 226
14.3.2一个小程序范例 228
14.4将小程序加入到Web页中 230
14.4.1<APPLET>标记 230
14.4.2 ALGN属性 231
14.4.3 HSPACE和VSPACE属性 232
14.4.4 CODE和CODEBASE属性 232
14.4.5装载小程序 233
14.4.6<OBJECT>标记 233
14.4.7将小程序放到网上 234
14.5 Java存档文件 235
14.6将参数传递给小程序 236
14.6.1 Sun的HTML转换器 238
14.7总结 239
14.8问与答 239
14.9小测验 240
14.9.1 问题 240
14.9.2答案 240
14.9.3认证练习 240
14.10练习 241
第3周课程 Java编程 243
第15天课程 输入和输出 243
15.1流 243
15.1.1使用流 243
15.1.2过滤流 244
15.1.3处理异常 244
15.2字节流 244
15.2.1文件流 245
15.3过滤流 247
15.3.1字节过滤器 247
15.4字符流 253
15.4.1读取文本文件 253
15.4.2写文本文件 255
15.5文件和文件名过滤器 256
15.6总结 257
15.7问与答 258
15.8小测验 258
15.8.1 问题 258
15.8.2答案 258
15.8.3认证练习 259
15.9练习 259
第16天课程 串行化和查看对象 260
16.1对象串行化 260
16.1.1对象输出流 261
16.1.2对象输入流 263
16.1.3暂态变量 265
16.2使用反射来检查类和方法 265
16.2.1检查和创建类 265
16.2.2处理类的各个部分 266
16.2.3检查类 267
16.3远程方法调用 269
16.3.1 RMI架构 270
16.3.2创建RMI应用程序 271
16.4总结 274
16.5问与答 274
16.6小测验 275
16.6.1问题 275
16.6.2答案 275
16.6.3认证练习 275
16.7练习 276
第17天课程 通过Internet进行通信 277
17.1 Java的联网技术 277
17.1.1在小程序中创建链接 277
17.1.2建立Web连接 280
17.1.3打开跨越网络的流 280
17.1.4套接字 282
17.1.5 Socket服务器 285
17.1.6设计服务器应用程序 285
17.1.7测试服务器 286
17.2 java.nio包 287
17.2.1缓冲区 287
17.2.2字符集 289
17.2.3通道 290
17.2.4网络通道 292
17.3总结 295
17.4问与答 296
17.5小测验 296
17.5.1 问题 296
17.5.2答案 297
17.5.3认证练习 297
17.6练习 297
第18天课程 JavaSound 298
18.1获取并使用声音 298
18.2 JavaSound 300
18.3 MIDI文件 300
18.3.1播放MIDI文件 301
18.3.2操纵声音文件 304
18.4总结 308
18.5问与答 308
18.6小测验 309
18.6.1问题 309
18.6.2答案 309
18.6.3认证练习 309
18.7练习 310
第19天课程 创建和使用JavaBean 311
19.1可重用的软件组件 311
19.1.1 JavaBeans的目标 312
19.1.2 JavaBeans与Java之间的关系 312
19.1.3 JavaBeans API 313
19.2开发工具 314
19.2.1 JavaBeans Development Kit 314
19.3使用JavaBeans 315
19.3.1 bean容器 315
19.3.2放置bean 316
19.3.3调整bean的属性 317
19.3.4创建bean之间的交互 318
19.3.5创建JavaBeans程序 319
19.3.6使用其他bean 321
19.4总结 321
19.5问与答 321
19.6小测验 322
19.6.1 问题 322
19.6.2答案 322
19.6.3认证练习 322
19.7练习 323
第20天课程 使用JDBC读写数据 324
20.1 JDBC 324
20.1.1数据库驱动程序 325
20.1.2 JDBC-ODBC桥 325
20.1.3连接ODBC数据源 326
20.1.4 JDBC驱动程序 334
20.2总结 336
20.3 问与答 336
20.4小测验 336
20.4.1 问题 336
20.4.2答案 336
20.4.3认证练习 337
20.5练习 337
第21天课程 使用XML读写数据 338
21.1使用XML 338
21.1.1设计XML方言 340
21.2使用Java处理XML 341
21.2.1读取XML文件 341
21.3总结 347
21.4问与答 348
21.5小测验 348
21.5.1 问题 348
21.5.2答案 348
21.5.3认证练习 349
21.6练习 349
附加课程 高级Java编程 351
第22天课程 编写Java servlet 351
22.1使用Web servlet 351
22.1.1支持servlet 352
22.1.2开发servlet 353
22.1.3使用cookie 356
22.2总结 359
22.3问与答 360
22.4小测验 360
22.4.1问题 360
22.4.2答案 360
22.4.3认证练习 360
22.5练习 361
第23天课程 JavaServer Page 362
23.1 JavaServer Page 362
23.1.1编写JavaServer Page 363
23.1.2创建Web应用程序 368
23.2总结 372
23.3问与答 373
23.4小测验 373
23.4.1问题 373
23.4.2答案 373
23.4.3认证练习 373
23.5练习 374
第24天课程 编写Java 1.0小程序 375
24.1 Java 1.0编程 375
24.1.1创建小程序 375
24.1.2在小程序中绘图 377
24.1.3创建图形用户界面 380
24.1.4处理用户事件 384
24.2总结 387
24.3问与答 388
24.4小测验 388
24.4.1问题 388
24.4.2答案 388
24.4.3认证练习 388
24.5练习 389
第25天课程 易用性 390
25.1提高程序的易用性 390
25.1.1 Accessibility类 391
25.1.2访问Swing组件 391
25.2使用Accessibility功能 394
25.2.1快捷键 394
25.2.2 ToolTip 395
25.2.3将标签与组件关联起来 395
25.3一个易于使用的应用程序:PageData 396
25.4总结 399
25.5问与答 399
25.6小测验 399
25.6.1问题 399
25.6.2答案 400
25.6.3认证练习 400
25.7练习 400
第26天课程 Java Web Start 401
26.1 Java Web Start 401
26.2使用JavaWeb Start 404
26.2.1创建JNLP文件 404
26.2.2在服务器上支持Web Start 406
26.2.3其他JNLP元素 407
26.2.4运行小程序 408
26.3总结 409
26.4问与答 410
26.5小测验 410
26.5.1问题 410
26.5.2答案 410
26.5.3认证练习 410
26.6练习 411
第27天课程 用XML-RPC创建Web服务 412
27.1 XML-RPC简介 412
27.2使用XML-RPC进行通信 413
27.2.1发送请求 413
27.2.2响应请求 414
27.3选择一种XML-RPC实现 415
27.4使用XML-RPC Web服务 416
27.5创建XML-RPC Web服务 418
27.6总结 421
27.7问与答 421
27.8小测验 422
27.8.1问题 422
27.8.2答案 422
27.8.3认证练习 422
27.9练习 423
第28天课程 正则表达式 424
28.1模式匹配简介 424
28.1.1 CharSequence接口 425
28.2使用正则表达式 425
28.2.1查找匹配 425
28.2.2使用模式分割字符串 428
28.3模式 428
28.3.1匹配 429
28.4总结 432
28.5问与答 432
28.6小测验 432
28.6.1问题 432
28.6.2答案 433
28.6.3认证练习 433
28.7练习 433
附 录 436
附录A 为何选择Java 436
A.1 Java的过去、现在和未来 436
A.1.1交互式Web编程 436
A.1.2 Java是从Oak发展而来的 437
A.1.3 Java版本 438
A.1.4 Java的前景展望 439
A.2为什么选择Java 439
A.2.1 Java是面向对象的 440
A.2.2 Java易学 440
A.2.3 Java是独立于平台的 440
A.3总结 441
附录B 使用Java 2 SDK 442
B.1选择Java开发工具 442
B.1.1安装SDK 443
B.2配置SDK 445
B.2.1使用命令行界面 445
B.2.2切换文件夹 447
B.2.3在MS-DOS 中创建文件夹 447
B.2.4在MS-DOS中运行程序 448
B.2.5更正配置错误 449
B.3使用文本编辑器 451
B.4创建程序 452
B.4.1在Windows中编译和运行程序 453
B.4.2设置CLASSPATH变量 454
附录C 使用Java 2 SDK编程 458
C.1 SDK概览 458
C.2 java解释器 459
C.3编译器javac 460
C.4浏览器appletviewer 461
C.5文档工具javadoc 463
C.6 Java文件存档工具jar 466
C.7调试器jdb 467
C.7.1调试应用程序 468
C.7.2调试小程序 469
C.7.3高级调试命令 469
C.8使用系统属性 469
C.9总结 470
C.10问与答 471
附录D 使用Sun ONE Studio 472
D.1选择Java开发工具 472
D.1.1安装Sun ONE Studio 472
D.2配置Sun ONE Studio 474
D.3创建程序 476
D.3.1运行程序 478
D.3.2其他初学者帮助信息 479
附录E Java资源 480
E.1 Sun公司的Java网站 480
E.1.1 Java 2的1.4版的类文档 480
E.2其他Java网站 481
E.2.1本书的网站 481
E.2.2 Café au Lait 481
E.2.3 Workbench 481
E.2.4 Java Review Service 481
E.2.5《Java World》杂志 481
E.2.6 Gamelan:Earthweb's Java Directory 481
E.2.7 Java图书列表 481
E.3 Java新闻组 482
附录F 本书的网站 483