第1章 绪论 1
1.1 Java程序设计语言 1
1.2 程序开发 7
1.3 问题求解 12
1.4 软件开发行为 13
1.5 面向对象程序设计 14
关键概念摘要 16
自测题 17
练习 17
程序设计项目 18
自测题答案 19
第2章 数据和表达式 20
2.1 字符串 20
2.2 变量和赋值 24
2.3 基本数据类型 28
2.4 表达式 30
2.5 数据转换 35
2.6 读输入数据 37
关键概念摘要 39
自测题 40
练习 40
程序设计项目 42
自测题答案 43
第3章 使用类和对象 44
3.1 创建对象 44
3.2 String类 47
3.3 包 49
3.4 Random类 50
3.5 Math类 52
3.6 格式化输出 54
3.7 枚举类型 57
3.8 包装类 59
关键概念摘要 61
自测题 61
练习 62
程序设计项目 63
自测题答案 63
第4章 条件和循环 65
4.1 布尔表达式 65
4.2 if语句 68
4.3 数据比较 75
4.4 switch语句 77
4.5 while语句 79
4.6 迭代器 86
4.7 do语句 89
4.8 for语句 90
关键概念摘要 94
自测题 94
练习 95
程序设计项目 97
自测题答案 99
第5章 编写类 100
5.1 再谈类和对象 100
5.2 类的剖析 102
5.3 封装 107
5.4 方法的剖析 112
5.5 静态类成员 119
5.6 类关系 122
5.7 方法设计 128
5.8 方法重载 135
5.9 测试 136
5.1 0调试 139
关键概念摘要 141
自测题 141
练习 142
程序设计项目 143
自测题答案 145
第6章 图形用户界面 147
6.1 GUI元素 147
6.2 更多的组件 154
6.3 布局管理器 170
6.4 鼠标和键盘事件 178
6.5 对话框 187
6.6 一些重要细节 190
6.7 GUI设计 197
关键概念摘要 198
自测题 198
练习 199
程序设计项目 199
自测题答案 201
第7章 数组 203
7.1 数组元素 203
7.2 数组的声明及使用 204
7.3 对象数组 210
7.4 命令行参数 217
7.5 变长参数表 218
7.6 二维数组 221
关键概念摘要 224
自测题 224
练习 225
程序设计项目 225
自测题答案 226
第8章 继承 228
8.1 创建子类 228
8.2 方法的重写 235
8.3 类层次 237
8.4 可见性 240
8.5 设计继承 242
关键概念摘要 243
自测题 243
练习 244
程序设计项目 244
自测题答案 245
第9章 多态 246
9.1 后绑定 246
9.2 通过继承实现多态 247
9.3 接口 255
9.4 通过接口实现多态 259
关键概念摘要 261
自测题 261
练习 262
程序设计项目 262
自测题答案 263
第10章 异常 264
10.1 异常处理 264
10.2 不捕获异常 265
10.3 try-catch语句 266
10.4 异常传播 268
10.5 异常类的层次 270
10.6 I/O异常 273
关键概念摘要 275
自测题 276
练习 276
程序设计项目 276
自测题答案 277
第11章 递归 278
11.1 递归思想 278
11.2 递归程序设计 280
11.3 使用递归 282
关键概念摘要 289
自测题 289
练习 289
程序设计项目 290
自测题答案 291
第12章 算法分析 292
12.1 算法效率 292
12.2 增长函数和大O符号 293
12.3 比较增长函数 294
关键概念摘要 297
自测题 298
练习 298
自测题答案 298
第13章 查找与排序 299
13.1 查找 299
13.2 排序 304
13.3 分析查找及排序算法 313
关键概念摘要 315
自测题 316
练习 316
程序设计项目 317
自测题答案 318
第14章 栈 319
14.1 集合的介绍 319
14.2 栈集合 321
14.3 继承、多态和泛型 322
14.4 栈的ADT 324
14.5 使用栈:计算后缀表达式 325
14.6 异常 330
14.7 使用数组实现栈 330
14.8 ArrayStack类 331
14.9 将引用作为链 335
14.1 0管理链表 336
14.1 1没有链的元素 339
14.1 2使用链实现栈 340
14.1 3使用java.util.Stack类实现栈 344
14.1 4包 345
关键概念摘要 347
自测题 347
练习 348
程序设计项目 349
自测题答案 350
第15章 队列 352
15.1 队列ADT 352
15.2 使用队列:编码k值 354
15.3 使用队列:模拟票务柜台 356
15.4 实现队列:使用链表 359
15.5 队列的实现:使用数组 362
关键概念摘要 366
自测题 366
练习 366
程序设计项目 367
自测题答案 368
第16章 树 369
16.1 树 369
16.2 树的遍历 371
16.3 树的实现策略 373
16.4 二叉树的实现 375
16.5 决策树 382
关键概念摘要 385
自测题 385
练习 385
程序设计项目 386
自测题答案 387
第17章 二叉查找树 388
17.1 二叉查找树 388
17.2 二叉查找树的实现 391
17.3 平衡二叉查找树 397
关键概念摘要 399
自测题 399
练习 400
程序设计项目 401
自测题答案 401
第18章 堆和优先队列 402
18.1 堆 402
18.2 堆的实现 404
18.3 堆排序 409
18.4 优先队列 410
关键概念摘要 412
自测题 412
练习 413
程序设计项目 413
自测题答案 413
第19章 图 414
19.1 无向图 414
19.2 有向图 415
19.3 带权图 416
19.4 常用的图算法 417
19.5 图的实现策略 422
关键概念摘要 424
自测题 424
练习 424
程序设计项目 425
自测题答案 425
第20章 哈希方法 426
20.1 哈希方法 426
20.2 哈希函数 427
20.3 解决冲突 429
20.4 从哈希表中删除元素 432
20.5 Java Collections API中的哈希表 433
关键概念摘要 439
自测题 439
练习 439
程序设计项目 440
自测题答案 440
第21章 数据库 442
21.1 数据库介绍 442
21.2 建立与数据库连接 443
21.3 创建并修改数据库表 445
21.4 查询数据库 447
21.5 插入、查看及更新数据 449
21.6 删除数据和数据库表 453
关键概念摘要 454
自测题 454
练习 455
程序设计项目 455
自测题答案 456
附录A 词汇表 457
附录B 数制 477
附录C Unicode字符集 483
附录D Java运算符 485
附录E Java修饰符 489
附录F Java图形 491
附录G Java applet 502
附录H 正则表达式 512
附录I Java文档生成器 513
附录J Java语法 516