目 录 1
出版者的话 1
前言 1
第一部分Java简介 1
第一章Java的奇迹 1
1.1 Java的概念 2
1.2 Java的起源 3
1.3为什么用Java编程 4
1.4 Java和HotJava 5
1.5总结 6
第二章Java概述 7
2.1获取JDK 7
2.2 JDK快速浏览 9
2.3 Java语言 10
2.4 Java API 14
2.5总结 16
第三章使用JDK(Java程序开发工具箱) 17
3.1概述 17
3.2编译器 18
3.3解释器 22
3.4调试器 25
3.5反汇编程序 26
3.6 Applet观察器 27
3.7 自动生成软件文档 27
3.8头文件生成 28
3.9运行演示程序 28
3.10总结 30
第四章第一个程序:Hello World!到BlackJack 31
4.1 Hello World! 31
第二部分用Java编程 31
4.2“I Can Read!”程序 36
4.3“Type This!”程序 39
4.4 BlackJack 41
4.5总结 67
第五章类和对象 68
5.1面向对象的编程概念 68
5.2Java类 72
5.3总结 98
6.1Java界面的目的 99
6.2界面的优点 99
第六章界 面 99
6.3声明界面 100
6.4实现界面 100
6.5 CDrawApp界面例子 100
6.6把界面用作抽象类型 115
6.7界面常量 116
6.8扩展界面 117
6.9组合界面 117
6.10总结 117
7.2错误处理和异常 118
7.1消除软件错误 118
第七章异 常 118
7.3引发异常 119
7.4声明异常 119
7.5声明或截获 120
7.6使用try语句 120
7.7截获异常 121
7.8嵌套的异常处理 124
7.9重引发异常 125
7.10总结 129
8.2 Java怎样支持多线程 130
第八章多线程 130
8.1理解多线程 130
8.3线程状态 136
8.4线程优先级和调度 137
8.5 同步化 137
8.6精灵线程 141
8.7线程组 141
8.8总结 141
第九章使用调试器 142
9.1调试器概述 142
9.2一个扩展例子 143
9.3调试多线程程序 151
9.4总结 155
第十章 自动生成软件文档 156
10.1 javadoc怎样工作 156
10.2使用javadoc 156
10.3放置Doc注释 161
10.4使用javadoc标记 163
10.5嵌入标准HTML 164
10.6总结 165
10.3注释 166
11.2引入语句 166
第十一章语言总结 166
11.1包语句 166
11.4标识符 167
11.5保留字 167
11.6基本数据类型和字面量值 167
11.7类声明 169
11.8变量声明 169
11.9构造函数声明 170
11.11静态初始化 171
11.12界面 171
11.10访问方法声明 171
11.13块和块体 172
11.14局部变量声明 172
11.15语句 172
11.16运算符 175
11.17总结 177
第三部分使用Java API 179
第十二章可移植软件与java lang包 179
12.1 Object类与Class类 179
12.2 ClassLoader、SecurityManager及Runtime类 182
12.3 System类 184
12.4包装类 186
12.5 Math类 188
12.6 String与StringBuffer类 189
12.7线程与进程 193
12.8 Compiler类 194
12.9异常与错误 195
12.10总结 195
13.1流 196
13.2 java.io类层次 196
第十三章基于流的输入/输出及java.io包 196
13.3 InputStream类 198
13.4 OutputStream类 199
13.5字节数组的输入输出(I/O) 199
13.6文件输入输出(I/O) 201
13.7 SequenceInputStream类 203
13.8过滤I/O 206
13.9 RandomAccessFile类 217
13.10 StreamTokenizer类 219
13.11总结 221
14.1 Date类 222
第十四章java.util包中的有用工具 222
14.2 Random类 223
14.3 Enumeration界面 225
14.4 Vector类 225
14.5 Stack类 226
14.6 BitSet类 227
14.7 Dictionary、Hashtable和Properties类 229
14.8 StringTokenizer类 233
14.9总结 235
15.2组件和容器 236
15.1窗口编程类 236
第十五章用java.aut包的窗口编程 236
15.3构造菜单 240
15.4组织窗口 241
15.5处理事件 242
15.6用图像工作 243
15.7几何对象 244
15.8使用字体 245
15.9使用工具包 246
15.10总结 246
16.1 Applet和World Wide Web 247
第十六章使用java.applet包进行Web编程 247
16.2 Applet的生命周期 257
16.3答复事件 257
16.4使用窗口组件 257
16.5添加声音与动画 258
16.6总结 258
第十七章使用java.net包进行网络编程 259
1 7.1 Internet协议组 259
17.3 java.net概述 261
17.2客户/服务器计算模式与Internet 261
17.4InetAddress类 262
17.5 Socket类 263
17.6 ServerSocket类 268
17.7 DatagramSocket类 271
17.8 DatagramPacket类 271
17.9 SocketImpl类与SocketImplFactory界面 276
17.10 Web相关类 276
17.11 ContentHandler与ContentHandlerFactory类 281
17.12 URLStreamHandler类与URLStreamHandlerFactory界面 281
17.13总结 282
第四部分窗口编程 283
第十八章打开窗口 283
18.1 Hello Windows! 283
18.2以一个绘制椭圆的图形程序为例 286
18.3文本编辑器 291
18.4总结 299
第十九章组织窗口程序 300
19.1设计窗口程序 300
19.2打开和关闭窗口 301
19.3使用布局 309
19.4将代码连接到事件 318
19.5窗口样本程序 319
19.6总结 328
第二十章菜单、按钮和对话框 329
20.1 向窗口中添加菜单 329
20.2用按钮操作 340
20.3使用对话框 344
20.4总结 349
21.1使用复选框 350
第二十一章复选框、选项和列表 350
21.2使用单选钮 352
21.3CheckboxApp程序 353
21.4生成选项 356
21.5从列表中选择 357
21.6 ChoiceListApp程序 358
21.7总结 362
22.1 文本类 363
22.2字体基础 363
第二十二章文本和字体 363
22.3所见即所得(WYSIWYG)编辑器 367
22.4总结 380
第二十三章画 布 381
23.1 Canvas和Graphics类 381
23.2显示位图图像 381
23.3画图和着色 384
23.4组合图形和文本 393
23.5 java.awt.image包中的图像处理类 393
23.6总结 398
24.1滚动条如何工作 399
24.2使用滚动条 399
第二十四章滚动条 399
24.3滚动文本 401
24.4滚动图形 408
24.5总结 415
第二十五章使用动画 416
25.1动画基础 416
25.2简单动画 416
25.3图形动画 419
25.4改善动画显示质量 423
25.5更新后的图形动画 424
25.6总结 427
第五部分 网络编程 429
第二十六章客户程序 429
26.1客户程序的类型 429
26.2客户程序的职责 429
26.3简单的Telnet客户 430
26.4邮件客户 437
26.5 Web Fetcher程序 444
26.6总结 446
27.2服务器责任 447
27.1服务器的类型 447
第二十七章服务器程序 447
27.3 SMTP服务器 448
27.4 Web服务器 454
27.5总结 459
第二十八章 内容处理程序 460
28.1使用内容处理程序 460
28.2多用途Internet邮件扩充(MIME) 460
28.3开发内容处理程序 461
28.4一个简单的内容处理程序 461
28.5总结 465
第二十九章协议处理程序 466
29.1使用协议处理程序 466
29.2开发协议处理程序 466
29.3简单的协议处理程序 467
29.4总结 470
第六部分 用Applet和脚本编制Web程序 471
第三十章Applet样本 471
30.1 Hello Web! 471
30.2音频播放器 473
30.3修订BlackJack 476
30.4总结 485
第三十一章开发Applet 486
31.1 Applet如何工作 486
31.2将Applet作为内联观察器 488
31.3将Applet作为网络客户 489
31.4优化Applet 489
31.5学习联机示例 489
31.6总结 490
第三十二章将Applet集成到分布式应用程序 491
32.1分布式应用程序结构 491
32.2 OMG和CORBA 493
32.3与CGI程序的连接 494
32.4将Applet与CGI程序相连接 496
32.5总结 499
第三十三章与JavaScript一起工作 500
33.1 JavaScript与Java 500
33.2 JavaScript如何工作 501
33.3 HTML与Script的关系 501
33.4嵌入JavaScript 501
33.5将Script与Applet组合 502
33.6总结 502
34.1可定制的Web页面 503
第三十四章脚本样本 503
34.2 StoryTeller脚本 505
34.3 Web Guide脚本 508
34.4总结 511
第三十五章JavaScript参考 512
35.1 JavaScript对象 512
35.2属性与方法 513
35.3事件处理 519
35.4数组 520
35.5运算符与表达式 520
35.6语句 521
35.7总结 522
第七部分扩展Java 523
第三十六章Java源代码 523
36.1获取Java源代码 523
36.2平台的差异 523
36.3平台测试 524
36.4 Windows 95/NT概述 524
36.5总结 524
37.2.class文件的结构 525
第三十七章Java虚拟机 525
37.1概述 525
37.3虚拟机结构 529
37.4指令集 531
37.5总结 542
第三十八章创建本地方法 543
38.1使用本地方法 543
38.2如何调用本地方法 543
38.3如何创建本地方法 544
38.4总结 546
39.1对Java安全的几种威胁 547
第三十九章Java安全 547
39.2 Java安全特征 548
39.3追踪Java安全问题的发展 550
39.4总结 551
第四十章Java平台和扩展 552
40.1 Java支持的浏览器 552
40.2 Borland的Latte 553
40.3 Symantec的Café 553
40.4数据库扩展 553
40.6总结 554
40.5使用Iced Java/Liquid Reality的VRML扩展 554
第八部分附录 555
附录AJava API简明参考 555
A.1 java.applet 555
A.2 java.awt 555
A.3 java.awt.image 558
A.4 java.awt.peer 559
A.5 java.io 561
A.6 java.lang 563
A.7 java.net 564
A.8 java.util 565
附录B Java和C++之间的差别 567
B.1程序结构 567
B.2程序开发 568
B.3语言的语法 568
附录C把已有的C/C++代码移植到Java 572
C.1移植到Java的原因 572
C.2移植到Java的缺点 574
C.3转换方法和问题 575
C.4翻译的方法和问题 576