第1章 计算机、Internet和Web 1
1.1 简介 1
1.2 什么是计算机 5
1.3 计算机的组成 5
1.4 操作系统的演化 6
1.5 个人计算、分布式计算与客户/服务器计算 6
1.6 机器语言、汇编语言和高级语言 7
1.7 C++的历史 8
1.8 Java的历史 9
1.9 Java的类库 9
1.10 其他高级语言 10
1.11 结构化编程 10
1.12 Internet和WWW 11
1.13 典型Java环境的组成 11
1.14 关于Java和本书的注释 14
1.15 本书概况 15
第2章 Java应用程序 28
2.1 简介 28
2.2 一个简单的程序:打印一行文字 28
2.3 另一个Java应用程序:整数相加 36
2.4 存储器概念 41
2.5 算术运算 42
2.6 相等和关系运算符 44
第3章 Java applet 62
3.1 简介 62
3.2 对象 63
3.3 Java2软件开发工具箱提供的示例applet 64
3.3.1 TicTacToe applet 65
3.3.2 DrawTest applet 67
3.3.3 Java2D applet 68
3.4 一个简单的Java applet:显示一个字符串 69
3.5 另外两个简单的applet:画字符串和线 74
3.6 另一个Java applet:整数相加 75
3.7 Java applet Internet和WWW资源 82
第4章 控制结构(第1部分) 92
4.1 简介 92
4.2 算法 93
4 3 伪码 93
4.4 控制结构 93
4.5 if选择结构 95
4.6 if/else选择结构 96
4.7 While循环结构 100
4.8 算法设计:计数器控制的循环 101
4.9 自上而下逐步细化地构成算法:标记控制的循环 105
4.10 自上而下逐步细化地构成算法:嵌套的控制结构 111
4.11 赋值运算符 115
4.12 增量和减量运算符 116
4.13 基本数据类型 118
第5章 控制结构(第2部分) 130
5.1 简介 130
5.2 由计数器控制的循环 130
5.3 for循环结构 132
5.4 for结构应用举例 135
5.5 switch多重选择结构 139
5.6 do/while循环结构 143
5.7 break和continue语句 145
5.8 带标号的break和continue语句 146
5.9 逻辑运算符 149
5.10 结构化编程小结 154
第6章 方法 167
6.1 简介 167
6.2 Java中的程序模块 168
6.3 Math类的方法 169
6.4 方法 169
6.5 方法定义 170
6.6 Java API包 177
6.7 随机数的生成 179
6.8 例子:碰运气游戏 182
6.9 标识符的持续时间 189
6.10 作用域规则 189
6 11 递归 191
6.12 递归举例:Fibonacci数列 194
6.13 递归与迭代 197
6.14 方法重载 199
6.15 JApplet类的方法 200
第7章 数组 220
7.1 简介 220
7.2 数组 220
7.3 声明数组和内存分配 221
7.4 数组应用举例 223
7.5 引用和引用参数 231
7.6 把数组传递给方法 232
7.7 数组排序 234
7.8 数组查找:线性查找和折半查找 236
7.9 多维数组 242
第8章 基于对象的编程 269
8.1 简介 270
8.2 用类实现抽象数据类型:时间 271
8.3 类作用域 277
8.4 成员访问控制 277
8.5 创建包 279
8.6 初始化类对象:构造函数 282
8.7 重载的构造函数 283
8.8 设置和读取方法 286
8.9 软件的复用性 293
8.10 final实例变量 293
8.11 组合:对象作为其他类的实例变量 294
8.12 包访问 297
8.13 this引用 298
8.14 finalizer 303
8.15 static类成员 304
8.16 数据抽象和信息隐蔽 307
第9章 面向对象的编程 319
9.1 简介 320
9.2 超类和子类 321
9.3 protected成员 323
9.4 超类对象和子类对象的关系 323
9.5 在子类中使用构造函数和finalizer 329
9.6 子类对象向超类对象的隐式转换 332
9.7 利用继承性的软件工程 332
9.8 组合和继承的比较 333
9.9 事例研究:点、圆、圆柱体 333
9.10 多态性简介 338
9.11 类型域和switch语句 338
9.12 动态方法绑定 339
9.13 final方法和类 339
9.14 抽象超类和具体类 340
9.15 多态性举例 340
9.16 事例研究:多态性在工资系统中的应用 342
9.17 新类和动态绑定 348
9.18 事例研究:继承接口和实现 348
9.19 事例研究:创建和使用接口 353
9.20 内部类定义 358
9.21 内部类定义要点 367
9.22 原始类型的类型包装类 367
第10章 字符串 378
10.1 简介 379
10.2 字符和字符串的基础知识 379
10.3 String构造函数 379
10.4 String类的length,charAt和getChars方法 382
10.5 字符串比较 383
10.6 String类的hashCode方法 388
10.7 在字符串中定位字符和子串 389
10.8 从字符串中抽取子串 391
10.9 字符串连接 392
10.10 String类的其他方法 393
10.11 String类的valueOf方法 395
10.12 String类的intem方法 396
10.13 StringBuffer类 398
10.14 StringBuffer构造函数 399
10.15 StringBuffer类的length,capacity,setLength和ensureCapacity方法 400
10.16 StringBuffer类的charAt,setcharAt,getChars和reverse方法 401
10.17 StringBuffer类的append方法 402
10.18 StringBuffer类的插入和删除方法 404
10.19 Character类例示 405
10.20 StringTokenizer类 412
10.21 洗牌和发牌模拟 414
第11章 图形和Java2D 429
11.1 简介 429
11.2 图形上下文和图形对象 431
11.3 颜色控制 432
11.4 字体控制 438
11.5 画线、矩形和椭圆 443
11.6 画弧形 446
11.7 画多边形和折线 448
11.8 Java2D API 450
11.9 Java2D图形 451
第12章 基本图形用户界面构件 465
12.1 简介 465
12.2 Swing概述 466
12.3 JLabel 468
12.4 事件处理模式 471
12.5 JTextField和JPasswirdField 473
12.6 JButton 478
12.7 JCheckBox和JRadioButton 480
12.8 JComboBox 485
12.9 JList 488
12.10 多选列表 491
12.11 鼠标事件处理 493
12.12 适配器类 496
12.13 键盘事件处理 501
12.14 布局管理器 504
12.14.1 FlowLayout 504
12.14.2 BorderLayout 506
12.14.3 GridLayout 509
12.15 面板 511
第13章 高级图形用户界面构件 525
13.1 简介 525
13.2 JTextArea 526
13.3 创建定制的JPanel子类 529
13.4 创建自包含的JPanel子类 532
13.5 JSlider 536
13.6 窗口 539
13.7 设计既能作为applet又能作为应用程序运行的程序 541
13.8 通过框架来使用菜单 546
13.9 使用JPopupMenus 552
13.10 插入式外观和风格 555
13.11 使用JDesktopPane和JInternalFrame 558
13.12 布局管理器 562
13.13 BoxLayout布局管理器 562
13.14 CardLayout布局管理器 565
13.15 GridBagLayout布局管理器 569
13.16 GridBagConstraints的RELATIVE和REMAINDER常量 574
第14章 例外处理 588
14.1 简介 588
14.2 例外处理的应用 590
14.3 其他的错误处理技术 591
14.4 Java例外处理的基本知识 591
14.5 例外处理举例:除数为0 592
14 6 try块 596
14.7 抛出例外 596
14.8 捕获例外: 597
14.9 重新抛出例外 599
14.10 throws语句 599
14.11 构造函数、finalizer和例外处理 604
14.12 例外与继承 604
14.13 finally块 604
14.14 printStackTrace和getMessage的使用 608
第15章 多线程 618
15.1 简介 618
15.2 Thread类:thread方法概述 620
15.3 线程状态:线程的生命周期 621
15.4 线程优先级和线程调度 622
15.5 线程同步 623
15.6 没有线程同步的情况下实现生产者/消费者关系 627
15.7 在线程同步的情况下实现生产者/消费者关系 631
15.8 生产者/消费者关系:循环缓冲区 634
15.9 守护线程 639
15.10 Runnable接口 639
15.11 线程组 643
第16章 多媒体:图像、动画、视频和音频 653
16.1 简介 653
16.2 下载Java媒体框架 654
16.3 装载、显示和缩放图像 655
16.4 装载和播放声音剪辑 657
16.5 Java媒体播放器 660
16.6 动画播放一组图像 665
16.7 动画问题 670
16.8 使用HTML的param标记定制applet 671
16.9 图像映像 675
16.10 Java插件 677
16.11 Internet和WWW资源 679
第17章 文件和流 691
17.1 简介 691
17.2 数据层次结构 692
17.3 文件和流 693
17.4 创建顺序存取文件 698
17.5 从顺序存取文件读取数据 706
17.6 更新顺序存取文件 715
17.7 随机存取文件 715
17.8 创建随机存取文件 715
17.9 向随机存取文件随机写入数据 719
17.10 从随机存取文件顺序读取数据 722
17.11 例子:事务处理程序 725
17.12 File类 737
第18章 Java数据库连接 751
18.1 简介 751
18.2 数据库系统 752
18.2.1 数据库系统的优点 752
18.2.2 数据独立性 752
18.2.3 数据库语言 752
18.2.4 分布式数据库 753
18.3 关系数据库模型 753
18.4 关系数据库概述:Books.mdb数据库 754
18.5 结构化查询语言 758
18.5.1 基本的SELECT查询 758
18.5.2 WHERE子句 758
18.5.3 ORDER BY子句 760
18.5.4 使用INNER JOIN从多个表合并数据 761
18.5.5 Books.mdb的TitleAuthor查询 763
18.6 一个例子 764
18.6.1 Books.mdb注册为ODBC数据源 770
18.6.2 查询数据库Books.mdb 771
18.7 读、插入和更新Microsoft Access数据库 775
18.8 事务处理 784
第19章 servlet 791
19.1 简介 791
19.2 servlet技术概述 792
19.2.1 servlet API 793
19.2.2 HttpServlet类 794
19.2.3 HttpServletRequest接口 795
19.2.4 HttpServletResponse接口 795
19.3 下载Java Servlet开发工具包 796
19.4 处理HTTP GET请求 796
19.5 处理HTTP POST请求 801
19.6 会话跟踪 806
19.6.1 Cookie 806
19.6.2 使用HttoSession进行会话跟踪 812
19.7 多层应用程序:从servlet使用JDBC 817
19.8 电子商务 822
19.9 Internet和WWW上的servlet资源 823
第20章 远程方法调用 829
20.1 简介 829
20.2 事例研究:使用RMI创建分布式系统 830
20.3 定义远程接口 830
20.4 实现远程接口 831
20.5 定义客户 836
20.6 编译与执行服务器和客户 841
第21章 网络 848
21.1 简介 848
21.2 使用URL 849
21.3 从Web服务器上读取文件 853
21.4 建立一个简单的服务器(使用流socket) 856
21.5 建立一个简单的客户(使用流socket) 857
21.6 客户/服务器通过流socket连接的交互 858
21.7 无连接的客户/服务器通过数据报的交互 866
21.8 利用多线程服务器实现的客户/服务器Tic-Tac-Toe游戏 871
21.9 安全与网络 881
第22章 数据结构 889
22.1 简介 889
22.2 自引用类 890
22.3 动态内存分配 890
22.4 链表 891
22.5 堆栈 899
22.6 队列 901
22.7 树 904
第23章 Java工具包和位操作 930
23.1 简介 930
23.2 Vector类和Enumeration接口 931
23.3 Stack类 937
23.4 Dictionary类 940
23.5 Hashtable类 940
23.6 Properties类 946
23.7 Random类 950
23.8 位操作和按位运算符 951
23.9 BitSet类 961
第24章 聚集 972
24.1 简介 972
24.2 概述 973
24.3 Arrays类 973
24.4 Collection接口和Collections类 977
24.5 List 977
24.6 算法 983
24.6.1 sort算法 983
24.6.2 shuffle算法 985
24.6.3 reverse,fill,copy,max和min算法 986
24.6.4 binarySearch算法 988
24.7 Set 990
24.8 Map 992
24.9 同步包裹 994
24.10 不可修改的包裹 994
24.11 抽象实现 995
第25章 JavaBean 1001
25.1 简介 1001
25.2 BeanBox概述 1002
25.3 由类编写JavaBean 1011
25.4 创建JavaBean:JAR文件和jar工具 1013
25.5 把Bean加到BeanBox中 1016
25.6 关联Bean和BeanBox中的事件 1017
25.7 向JavaBean中加入属性 1018
25.8 创建带有边界属性的JavaBean 1021
25.9 为JavaBean指定BeanInfo类 1026
25.10 JavaBeans在WWW中的资源 1031
附录A Java演示 1039
附录B Java资源 1042
附录C 运算符优先级表 1050
附录D ASCII字符集 1052
附录E 数制系统 1053
附录F 面向对象的电梯模拟器 1063
附录G 用javadoc创建HTML文档 1073
附录H 企业JavaBean(EJB)Web资源 1086
附录I JINI Web资源 1090
参考文献 1093