译者序 1
序 1
第1章 计算机及Java的应用 1
简介 1
1.1 简介 1
目 录 1
1.2 什么是计算机 4
1.3 计算机的组成 4
1.5 个人、分布式与客户机/服务器计算 5
1.4 操作系统的发展 5
1.6 机器语言、汇编语言和高级语言 6
1.7 C++的历史 7
1.8 Java的历史 8
1.9Java的类库 8
1.10 其他高级语言 9
1.11 结构化编程方法 9
1.12 典型Java环境的组成 9
1.13 本书概况 11
1.14 有关Java和本书的注释 14
1.15 Java编程简介 16
1.16 一个简单的程序:打印一行文字 16
1.17 另外一个Java程序:整数相加 19
1.18 存储器概念 24
1.19 算术运算 25
1.20 相等和关系运算符 27
1.21 小结 33
2.2 算法 46
2.3 伪码 46
第2章 开发Java应用程序 46
2.1 简介 46
2.4 控制结构 47
2.5 if选择结构 49
2.6 if/else选择结构 50
2.7 while循环结构 54
2.8 算法设计:计数器控制的循环 55
标记控制的循环 59
2.9 自上而下逐步细化地构成算法: 59
2.10 自上而下逐级细化地构成算法:嵌套的控制结构 64
2.11 赋值运算符 68
2.12 增量和减量运算符 68
2.13 基本数据类型 71
2.14 常用转义序列 72
2.15 小结 73
第3章 控制结构 85
3.1 简介 85
3.2 由计数器控制的循环 85
3.3 for循环结构 87
3.4 for结构应用举例 89
3.5 switch多重选择结构 92
3.6 do/while循环结构 96
3.7 break和continue语句 97
3.8 带标号的break和continue语句 99
3.9 逻辑运算符 101
3.10 结构化编程小结 106
3.11 小结 110
第4章 方法 120
4.1 简介 120
4.2 Java中的程序模块 120
4.3 Math类方法 121
4.4 方法 122
4.5 方法定义 123
4.6 Java API包 128
4.7 随机数的生成 129
4.8 例子:碰运气游戏 132
4.9 动态变量 135
4.10 作用域规则 136
4.11 递归 138
4.12 递归举例:Fibonacci数列 141
4.13 递归与迭代 144
4.14 方法重载 146
4.15 Applet类的方法 147
4.16 小结 148
第5章 数组 166
5.1 简介 166
5.2 数组 166
5.3 声明和分配数组 168
5.4 数组应用举例 168
5.5 引用和引用参数 177
5.6 把数组传递给方法 178
5.7 数组排序 180
5.8 数组查找:线性查找和对分查找 182
5.9 多维数组 187
5.10 小结 192
第6章 基于对象的编程 212
6.1 简介 212
6.2 用类实现抽象数据类型Time 213
6.3 类作用域 216
6.4 成员访问控制 217
6.5 工具方法 218
6.6 初始化类对象:构造函数 221
6.7 重载的构造函数 222
6.8 set和get方法 225
6.9 软件的重用性 230
6.10 final实例变量 230
6.11 组合:对象作为其他类的实例变量 232
6.12 friendly成员 234
6.13 this引用 236
6.14 finalizer 239
6.15 static类成员 241
6.16 数据抽象和信息隐蔽 243
6.17 小结 244
第7章 面向对象的编程 252
7.1 简介 252
7.2 超类和子类 253
7.3 protected成员 255
7.4超类对象和子类对象的关系 255
7.5在子类中使用构造函数和finalizer 259
7.6子类对象向超类对象的隐式转换 262
7.7 利用继承性的软件工程 263
7.8 通过继承性进行组合 264
7.9 事例研究:点、圆、圆柱体 264
7.10 多态性 269
7.11 类型域和switch语句 269
7.12 动态方法装订 269
7.13 final方法和类 270
7.14 抽象超类和具体类 270
7.15 多态性举例 271
7.16 事例研究:多态性在工资系统中的应用 273
7.17 新的类和动态装订 278
7.18 事例研究:继承接口及其实现 279
7.19 原始类型的类型包装类 283
7.20小结 283
8.2 字符和字符串的基础知识 291
8.3 String构造函数 291
8.1 简介 291
第8章 字符串 291
8.4 String类的length、charAt、getChars和getBytes方法 294
8.5 字符串的比较 296
8.6 String类的hashCode方法 301
8.7 在字符串中定位字符和子字符串 302
8.8 从字符串中抽取子字符串 304
8.9 字符串连接 305
8.10 其他String类的方法 306
8.11 使用String类的valueOf方法 308
8.12 String类的intern方法 309
8.13 StringBuffer类 311
8.14 StringBuffer构造函数 312
8.15 StringBuffer类的length、capacity、setLength和ensureCapacity方法 312
8.16 StringBuffer类的charAt、setCharAt和getChars方法 314
8.17 StringBuffer类的append方法 315
8.18 StringBuffer类的insert方法 317
8.19 Character类例示 318
8.20 StringTokenizer类 324
8.21 洗牌和发牌模拟 327
8.22 小结 330
第9章 图形 340
9.1 简介 340
9.2 图形上下文和图形对象 341
9.3 绘制字符串、字符和字节 342
9.4 颜色控制 344
9.5 字体控制 348
9.6 画线条 355
9.7 画矩形 356
9.8 画圆角矩形 358
9.9 画三维矩形 359
9.10 画椭圆 361
9.11 画弧形 362
9.12 画多边形 364
9.13 屏幕操作 367
9.14 绘图模式 369
9.15 小结 370
10.1 简介 378
第10章 基本图形用户界面构件 378
10.2 标签 379
10.3 按钮 382
10.4 文本区 385
10.5 选择按钮 389
10.6 复选框和单选钮 391
10.7 列表 396
10.8 面板 400
10.9 鼠标事件 401
10.10 键盘事件 408
10.11 FlowLayout布局管理器 413
10.12 BorderLayout布局管理器 418
10.13 GridLayout布局管理器 421
10.14 小结 424
第11章 高级图形用户界面构件 434
11.1 简介 434
11.2 文本区域 434
11.3 画布 437
11.4 滚动条 442
11.5 自定义构件 445
11.6 帧 448
11.7 菜单 457
11.8 对话框 465
11.9 高级布局管理器 472
11.10 CardLayout布局管理器 472
11.11 GridBagLayout布局管理器 475
11.12 不使用布局管理器 483
11.13 程序员定义的布局管理器 484
11.14小结 487
第12章 例外处理 495
12.1 简介 495
12.2 例外处理的应用 497
12.3 其他的错误处理技术 497
12.4 Java例外处理的基本知识 497
12.5 简单的例外处理例子:除数为0 498
12.7 抛出例外 501
12.6 try块 501
12.8 捕获例外 502
12.9 重新抛出例外 504
12.10 throws语句 504
12.11 构造函数、finalizer和例外处理 508
12.12 例外与继承 508
12.13 finally块 508
12.14 printStackTrace和getMessage 510
12.15小结 513
13.1 简介 521
第13章 多线程 521
13.2 Thread类:Thread方法概述 523
13.3 线程的状态:线程的生命周期 524
13.4 线程优先级和线程调度 525
13.5 线程同步 528
13.6 没有线程同步的情况下实现生产者/消费者关系 528
13.7 在线程同步的情况下实现生产者/消费者关系 531
13.8 生产者/消费者关系:循环缓冲区 535
13.10 Runnable接口 539
13.9 守护线程 539
13.11 线程组 543
13.12 小结 544
第14章 多媒体:图像、动画和声音 553
14.1 简介 553
14.2 装载、显示和缩放图像 554
14.3 动画入门:图像的循环 555
14.4 图形双缓冲 558
14.5 使用MediaTracker监视图像的 561
装载 561
14.6 用独立的线程执行动画 564
14.7 装载和播放声音剪辑 567
14.8 使用HTML的param标记定制 568
applet 568
14.9 图像映像 573
14.10 小结 575
15.1 简介 585
15.2 数据层次结构 585
第15章 文件和流 585
15.3 文件和流 587
15.4 创建顺序存取文件 590
15.5 从顺序存取文件读取数据 595
15.6 更新顺序存取文件 603
15.7 随机存取文件 603
15.8 创建随机存取文件 604
15.9 向随机存取文件随机写入数据 606
15.10 从随机存取文件顺序读取数据 610
15.11 例子:事务处理程序 613
15.12 File类 623
15.13 对象的输入/输出 627
15.14 小结 627
第16章 网络 637
16.1 简介 637
16.2 使用URL 638
16.3 利用URL流连接读取服务器上的 640
文件 640
16.4 建立简单的服务器(利用socket流) 642
16.5 建立简单的客户机(利用socket流) 643
16.6 客户机/服务器通过socket流连接的交互 643
16.7 非连接的客户机/服务器通过数据报的交互 647
16.8 利用多线程服务器实现的客户机/服务器Tic-Tac-Toe游戏 653
16.9 网络与安全 664
16.10 未来网络与安全API 664
16.11 小结 664
17.2 自引用的类 671
17.1 简介 671
第17章 数据结构 671
17.3 动态内存分配 672
17.4 链表 673
17.5 堆栈 681
17.6 队列 683
17.7 树 685
17.8 小结 690
18.2 Vector类和Enumeration接口 710
18.1 简介 710
第18章 Java工具包和位操作 710
18.3 Stack类 715
18.4 Dictionary类 718
18.5 Hashtable类 718
18.6 Date类 723
18.7 Observable类和Observer接口 724
18.8 Properties类 727
18.9 Random类 731
18.10 位操作和按位运算符 732
18.11 BitSet类 741
18.12 小结 744
附录A Java演示 752
附录B Java资源 756
附录C运算符优先级表 760
附录D ASCII字符集 762
附录E 数制系统 763
附录F 面向对象的电梯模拟器 773