第1章 Java基本知识 1
1.1 深入了解 1
1.1.1 关于Java 1
1.1.2 Java的出现 2
1.1.3 字节码相关知识 3
1.1.4 Java安全性 3
1.1.5 Java程序 4
1.1.6 Java 2还是Java 1.3 6
1.2 快速解决方案 6
1.2.1 获取和安装Java 6
1.2.2 Java 1.1中的新内容 8
1.2.3 Java 1.1中遭到反对的内容 9
1.2.4 Java 2的1.2版中的新内容 9
1.2.5 Java 2的1.2版遭到反对的内容 11
1.2.6 Java 2的1.3版中的新内容 12
1.2.7 Java 2的1.3版中遭到反对的内容 13
1.2.8 编写代码:创建代码文件 13
1.2.9 编写代码:了解Java的保留字 13
1.2.10 编写代码:创建应用程序 15
1.2.11 编译代码 18
1.2.12 编译代码:利用命令行选项 19
1.2.13 编译代码:检查被反对的方法 21
1.2.14 运行代码 21
1.2.15 运行代码:使用命令行选项 23
1.2.16 基本技巧:注释代码 25
1.2.17 基本技巧:导入Java软件包和类 27
1.2.18 基本技巧:使用CLASSPATH查找Java类 29
1.2.19 创建Java小程序 31
1.2.20 运行Java小程序 32
1.2.21 创建窗口应用程序 34
1.2.22 运行窗口应用程序 35
1.2.23 设计Java程序 35
1.2.24 发售Java程序 37
第2章 变量、数组和字符串 39
2.1 深入了解 39
2.1.1 变量 39
2.1.2 数据类型 41
2.1.3 数组 41
2.1.4 字符串 44
2.2 快速解决方案 45
2.2.1 有效数据类型 45
2.2.2 创建整型数值 46
2.2.3 创建浮点型数值 47
2.2.4 创建布尔型数值 48
2.2.5 创建字符型数值 49
2.2.6 创建字符串数值 50
2.2.7 声明整型变量 51
2.2.8 声明浮点型变量 52
2.2.9 声明字符型变量 52
2.2.10 声明布尔型变量 53
2.2.11 初始化变量 54
2.2.12 数据类型转换 56
2.2.13 声明一维数组 59
2.2.14 创建一维数组 59
2.2.15 初始化一维数组 60
2.2.16 声明多维数组 61
2.2.17 创建多维数组 62
2.2.18 初始化多维数组 64
2.2.19 创建不规则的多维数组 64
2.2.20 获取数组长度 65
2.2.21 String类 65
2.2.22 创建字符串 69
2.2.23 获取字符串长度 71
2.2.24 连接字符串 72
2.2.25 获取字符和子串 73
2.2.26 搜索和替换字符串 74
2.2.27 更改字符串大小写 75
2.2.28 格式化字符串中的数字 76
2.2.29 StringBuffer类 76
2.2.30 创建字符串缓存 78
2.2.31 获取和设置字符串缓存长度和容量 79
2.2.32 设置字符串缓存中的字符 80
2.2.33 利用字符串缓存添加和插入 80
2.2.34 删除字符串缓存中的文本 81
2.2.35 替换字符串缓存中的文本 82
第3章 操作符、条件和循环 83
3.1 深入了解 83
3.1.1 操作符 83
3.1.2 条件 85
3.1.3 循环 86
3.2 快速解决方案 87
3.2.1 操作符优先权 87
3.2.2 递增和递减:++和-- 88
3.2.3 一元非:~和! 90
3.2.4 乘法和除法:*和/ 90
3.2.5 求模:% 91
3.2.6 加法和减法:+和- 91
3.2.7 移位操作符:>>、>>>和<< 92
3.2.8 关系操作符:>、>=、<、<=、==和!= 93
3.2.9 逐位和位逻辑的与、异或、或:&、^、|… 93
3.2.10 逻辑&&和|| 96
3.2.11 if-then-else操作符:?: 97
3.2.12 赋值操作符:=和[operator]= 98
3.2.13 使用Math类 100
3.2.14 对比字符串 101
3.2.15 if语句 102
3.2.16 else语句 103
3.2.17 嵌套if语句 103
3.2.18 if-else阶梯 104
3.2.19 switch语句 104
3.2.20 while循环 107
3.2.21 do-while循环 109
3.2.22 for循环 110
3.2.23 嵌套循环 113
3.2.24 使用break语句 114
3.2.25 使用continue语句 115
第4章 面向对象编程 117
4.1 深入了解 117
4.1.1 类 118
4.1.2 对象 118
4.1.3 数据成员 118
4.1.4 方法 119
4.1.5 继承 120
4.2 快速解决方案 120
4.2.1 声明和创建对象 120
4.2.2 声明和定义类 123
4.2.3 创建实例变量 126
4.2.4 设置变量地址 127
4.2.5 创建类变量 128
4.2.6 创建方法 130
4.2.7 设置方法访问 131
4.2.8 发送参数到方法 132
4.2.9 发送到main的命令行参数 134
4.2.10 从方法返回数值 135
4.2.11 创建类方法 136
4.2.12 创建数据读取方法 137
4.2.13 创建构造函数 138
4.2.14 发送参数至构造函数 139
4.2.15 一个完整的类例程 140
4.2.16 理解变量范围 142
4.2.17 使用递归 143
4.2.18 碎片收集和内存管理 144
4.2.19 碎片收集和finalize方法 146
4.2.20 载入方法 147
4.2.21 载入构造函数 149
4.2.22 发送对象至方法 150
4.2.23 发送数组至方法 152
4.2.24 使用this关键词 153
4.2.25 从方法返回对象 154
4.2.26 从方法返回数组 155
第5章 继承、内部类和接口 157
5.1 深入了解 157
5.1.1 为什么有继承性 157
5.1.2 为什么有接口 158
5.1.3 为什么有内部类 159
5.2 快速解决方案 160
5.2.1 创建一个子类 160
5.2.2 访问说明符和继承 161
5.2.3 调用超类构造函数 164
5.2.4 创建多层继承 167
5.2.5 处理多层构造函数 169
5.2.6 重载方法 171
5.2.7 访问被重载的方法 172
5.2.8 利用子类对象使用超类变量 173
5.2.9 动态方法分派(运行时间多态性) 176
5.2.10 创建抽象类 178
5.2.11 用final终止重载 179
5.2.12 用final终止继承 181
5.2.13 用final创建常量 181
5.2.14 Is-a与Has-a关系 182
5.2.15 Java的Object类 183
5.2.16 使用多层继承的接口 186
5.2.17 创建内部类 188
第6章 AWT:Java,小程序、应用程序和事件处理 191
6.1 深入了解 191
6.1.1 抽象窗口工具箱 191
6.1.2 Java小程序 192
6.1.3 应用程序 194
6.1.4 处理事件 194
6.2 快速解决方案 195
6.2.1 使用抽象窗口工具箱 195
6.2.2 创建Java小程序 203
6.2.3 使用<APPLET>HTML标签 205
6.2.4 处理非Java浏览器 207
6.2.5 在代码中嵌入<APPLET>HTML标签 208
6.2.6 使用init,start,stop,destroy,paint和update方法 208
6.2.7 在Java,小程序中绘制图形 210
6.2.8 Java的插件:在浏览器中运行最新的Java小程序 210
6.2.9 读取Java小程序中的参数 212
6.2.10 使用浏览器中的Java控制台 213
6.2.11 添加控件至Java小程序:文本字段 214
6.2.12 添加控件至Java小程序:按钮 215
6.2.13 事件处理 216
6.2.14 利用适配器类 223
6.2.15 利用匿名的内部适配器类 225
6.2.16 创建窗口式的应用程序 226
6.2.17 关闭窗口时退出应用程序 228
6.2.18 能作为Java小程序运行的应用程序 229
第7章 AWT:文本字段、按钮、复选框、单选按钮和布局 231
7.1 深入了解 231
7.1.1 文本字段 231
7.1.2 按钮 231
7.1.3 复选框 231
7.1.4 单选按钮 231
7.1.5 布局 232
7.2 快速解决方案 232
7.2.1 使用文本字段 232
7.2.2 使用标记 235
7.2.3 使用按钮 237
7.2.4 使用复选框 240
7.2.5 使用单选按钮 244
7.2.6 流布局 246
7.2.7 网格布局 249
7.2.8 使用面板 251
7.2.9 边框布局 253
7.2.10 卡片布局 256
7.2.11 栅格单元(grid bag)布局 259
7.2.12 使用插入和填充 264
7.2.13 创建自己的布局管理器 266
第8章 AWT:列表、选择、文本区域、滚动条和滚动小方块 267
8.1 深入了解 267
8.1.1 列表 267
8.1.2 选择 267
8.1.3 文本区域 268
8.1.4 滚动条 268
8.1.5 滚动小方块 268
8.2 快速解决方案 268
8.2.1 使用文本区域 268
8.2.2 替换文本区域中的文本 271
8.2.3 搜索和选择文本区域中的文本 272
8.2.4 使用列表 274
8.2.5 使用多项选择列表 279
8.2.6 使用选择控件 281
8.2.7 使用滚动条 285
8.2.8 滚动条和边框布局 290
8.2.9 使用滚动小方块 293
第9章 AWT:图形、图像、文本和字体 297
9.1 深入了解 297
9.1.1 图形 297
9.1.2 图像 297
9.1.3 文本和字体 297
9.1.4 键盘和鼠标 297
9.2 快速解决方案 298
9.2.1 使用鼠标 298
9.2.2 使用键盘 301
9.2.3 使用字体 305
9.2.4 使用图像 311
9.2.5 调整图像大小 314
9.2.6 绘制图形 315
9.2.7 选择颜色 324
9.2.8 使用画布 326
9.2.9 使用ImageObserver接口 328
9.2.10 使用MediaTraker类 330
9.2.11 逐像素处理:PixelGrabber类和MemoryImageSource类 332
9.2.12 显亮图像 336
9.2.13 将图像转换成灰度图 337
9.2.14 凸现图像 338
第10章 AWT组件:窗口、菜单和对话框 341
10.1 深入了解 341
10.1.1 窗口 341
10.1.2 菜单 341
10.1.3 对话框 342
10.2 快速解决方案 342
10.2.1 创建框架式窗口 342
10.2.2 显示和隐藏窗口 344
10.2.3 处理窗口事件 346
10.2.4 自动隐藏窗口代替关闭窗口 349
10.2.5 使用Window类 350
10.2.6 创建菜单 354
10.2.7 创建一个MenuBar对象 356
10.2.8 创建菜单对象 357
10.2.9 创建MenuItem对象 359
10.2.10 处理菜单事件 361
10.2.11 更多菜单选项 362
10.2.12 添加菜单分隔符 365
10.2.13 取消菜单项 366
10.2.14 添加复选框至菜单 367
10.2.15 创建子菜单 369
10.2.16 弹出式菜单 371
10.2.17 对话框 373
10.2.18 文件对话框 377
第11章 处理流:文件和I/O处理 381
11.1 深入了解 381
11.2 快速解决方案 382
11.2.1 使用File类 382
11.2.2 处理InputStream类 385
11.2.3 处理OutputStream类 386
11.2.4 处理FileInputStream 386
11.2.5 处理FileOutputStream 388
11.2.6 处理ByteArraylnputStream 390
11.2.7 处理ByteArryOutputStream 391
11.2.8 处理BufferedInputStream 393
11.2.9 处理BufferedOutputStream 395
11.2.10 处理RandomAccessFile 396
11.2.11 处理Reader 397
11.2.12 处理Writer 398
11.2.13 键盘输入:处理InputstrealnReader 399
11.2.14 处理OutputStreamWriter 400
11.2.15 处理FileReader 401
11.2.16 处理FileWrite 402
11.2.17 处理CharArrayReader 403
11.2.18 处理CharArrayWriter 404
11.2.19 处理BufferdReader 405
11.2.20 处理BufferedWriter 407
11.2.21 处理PushbackReader 407
11.2.22 处理StreamTokenizer 408
11.2.23 操作串行化 410
11.2.24 操作剪贴板 414
11.2.25 操作打印机 415
第12章 多线程处理 416
12.1 深入了解 416
12.2 快速解决方案 417
12.1.1 获取主线程 417
12.2.2 命名线程 418
12.2.3 暂停线程 418
12.2.4 使用Runnable接口创建线程 419
12.2.5 使用Thread类创建线程 421
12.2.6 创建多线程 424
12.2.7 等待(加入)线程 425
12.2.8 检查线程是否存在 427
12.2.9 设置线程优先级和停止线程 429
12.2.10 为什么使用同步 431
12.2.11 同步代码段 432
12.2.12 同步方法 434
12.2.13 线程间通信 435
12.2.14 暂停和重启线程 437
12.2.15 使用线程创建图形动画 439
12.2.16 消除图形动画中的闪烁 441
12.2.17 暂停和重启图形动画 442
12.2.18 双缓存 444
第13章 Swing:小程序、应用程序和可插入外观 447
13.1 深入了解 447
13.1.1 Java基本类 447
13.1.2 Swing 448
13.1.3 重量级组件和轻量级组件的比较 449
13.1.4 Swing特性 450
13.1.5 利用面板的图形编程 451
13.1.6 模式视图控制器结构 451
13.2 快速解决方案 452
13.2.1 处理Swing 452
13.2.2 准备创建Swing小程序 457
13.2.3 了解根面板 459
13.2.4 了解分层面板 461
13.2.5 了解内容面板 463
13.2.6 创建Swing小应用程序 464
13.2.7 创建Swing应用程序 467
13.2.8 关闭JFrame窗口 470
13.2.9 选择组件边框 472
13.2.10 设置可插入的外观 475
13.2.11 设置组件的可插入外观 479
第14章 Swing:文本字段、按钮、转换按钮、复选框和单选按钮 483
14.1 深入了解 483
14.1.1 标签和文本字段 483
14.1.2 按钮 483
14.1.3 转换按钮 483
14.1.4 复选框和单选按钮 484
14.2 快速解决方案 484
14.2.1 使用标签 484
14.2.2 使用ImageIcon图标 487
14.2.3 在标签中使用图像 488
14.2.4 使用文本字段 490
14.2.5 抽象按钮:Swing按钮的基础 492
14.2.6 使用按钮 496
14.2.7 在按钮中显示图像 498
14.2.8 使用转滚法和禁止图像 500
14.2.9 缺省按钮和快捷键 502
14.2.10 使用转换按钮 503
14.2.11 创建转换按钮组 505
14.2.12 使用复选框 507
14.2.13 使用单选按钮 510
14.2.14 使用复选框和单选按钮图像 512
14.2.15 获取和设置复选框与单选按钮的状态 514
第15章 Swing:视窗、滚动条、滑块和列表 516
15.1 深入了解 516
15.1.1 视窗 516
15.1.2 滚动面板 516
15.1.3 滑块 516
15.1.4 滚动栏 516
15.1.5 列表 517
15.2 快速解决方案 517
15.2.1 处理视窗 517
15.2.2 创建滚动面板 522
15.2.3 创建滚动面板标题和边框 526
15.2.4 滚动图像 528
15.2.5 创建滑块 529
15.2.6 填充滑块 533
15.2.7 绘制滑块勾号标记 534
15.2.8 绘制滑块标签 535
15.2.9 设置滑块的范围 535
15.2.10 创建滚动栏 537
15.2.11 创建列表 540
15.2.12 处理多个列表选项 545
15.2.13 在列表中显示图像 547
15.2.14 创建自定义列表模型 549
15.2.15 创建自定义列表单元分割器 549
15.2.16 处理列表中的双击 550
第16章 Swing:组合框、进度条、工具提示、分隔符和选择符 552
16.1 深入了解 552
16.1.1 组合框 552
16.1.2 进度条 552
16.1.3 选择器 552
16.1.4 工具提示 553
16.1.5 分隔符 553
16.2 快速解决方案 553
16.2.1 创建组合框 553
16.2.2 处理组合框选择事件 558
16.2.3 创建可编辑的组合框 560
16.2.4 向组合框添加图像 562
16.2.5 创建一个组合框模型 563
16.2.6 创建一个组合框自定义分割器 563
16.2.7 创建程序进度条 564
16.2.8 更新程序进度条 568
16.2.9 处理程序进度条事件 569
16.2.10 创建工具提示 571
16.2.11 创建分隔符 573
16.2.12 自动调整分隔符尺寸 575
16.2.13 创建颜色选择器 577
16.2.14 创建文件选择器 580
16.2.15 创建文件滤波器 587
第17章 Swing:分层面板、标签面板、分隔面板和布局 591
17.1 深入了解 591
17.1.1 分层面板 591
17.1.2 标签面板 591
17.1.3 分割面板 592
17.1.4 规划管理器 592
17.2 快速解决方案 592
17.2.1 了解Swing组件和Z序 592
17.2.2 使Swing组件成为透明的 594
17.2.3 使用分层面板 596
17.2.4 创建标签面板 598
17.2.5 设定标签面板中的标签的布局 603
17.2.6 使用分隔面板 605
17.2.7 创建点击可以扩展的分隔面板 609
17.2.8 设定分隔面板的方向 611
17.2.9 设定分隔面板的分隔尺寸 612
17.2.10 使用方框规划管理器 614
17.2.11 使用Box类 616
17.2.12 使用覆盖规划管理器 620
第18章 Swing:菜单和工具栏 623
18.1 深入了解 623
18.1.1 菜单 623
18.1.2 工具栏 623
18.2 快速解决方案 624
18.2.1 创建菜单栏 624
18.2.2 创建菜单 625
18.2.3 创建菜单项 628
18.2.4 创建基础菜单系统 630
18.2.5 向菜单添加图像 634
18.2.6 创建复选框菜单选项 636
18.2.7 创建单选按钮菜单 639
18.2.8 创建子菜单 642
18.2.9 创建菜单加速键和快捷键 643
18.2.10 启用和禁用菜单选项和在运行时改变标题 646
18.2.11 运行时添加和删除菜单选项 648
18.2.12 向菜单添加按钮和其他控件 650
18.2.13 创建弹出式菜单 652
18.2.14 创建工具栏 656
18.2.15 向工具栏添加组合框和其他控件 658
第19章 Swing:窗口、桌面面板、内部帧和对话框 661
19.1 深入了解 661
19.1.1 窗口 661
19.1.2 对话框 661
19.2 快速解决方案 662
19.2.1 创建窗口 662
19.2.2 创建帧窗口 665
19.2.3 创建桌面面板 666
19.2.4 创建内部帧 668
19.2.5 用JOptionPane来创建对话框 675
19.2.6 创建选项面板确定对话框 681
19.2.7 创建选项面板消息对话框 682
19.2.8 创建选项面板文本字段输入对话框 684
19.2.9 创建选项面板组合框输入对话框 685
19.2.10 创建选项面板内部帧对话框 687
19.2.11 用JDialog创建对话框 688
19.2.12 从用JDialog创建的对话框获得输入 692
第20章 Java和XML:使用文档对象模型 695
20.1 深入了解 695
20.1.1 编写XML文档 695
20.1.2 有效的和格式一致的XML文档 699
20.1.3 使用Java的XML 701
20.1.4 使用Java的JAXP 705
20.2 快速解决方案 705
20.2.1 Java的XML:创建DOMParser对象 705
20.2.2 解析XML文档 706
20.2.3 获得解析的文档 715
20.2.4 显示XML文档 718
20.2.5 处理文档节点 719
20.2.6 处理元素节点 721
20.2.7 处理属性 721
20.2.8 处理子元素 723
20.2.9 处理文本节点 724
20.2.10 处理XML处理指令节点 725
20.2.11 关闭元素 726
20.2.12 运行XML4JParser应用程序 727
20.2.13 在XML文档中定位 729
20.2.14 创建JAXP应用程序 732
第21章 Java和XML:为XML使用简单的API 737
21.1 深入了解 737
21.2 快速解决方案 742
21.2.1 创建SAX解析器 742
21.2.2 用SAX解析器注册事件处理器 753
21.2.3 处理文档的开头 755
21.2.4 处理元素的开头 755
21.2.5 处理属性 757
21.2.6 处理文本内容 759
21.2.7 忽略“可忽略”的空格 760
21.2.8 处理元素的末尾 761
21.2.9 处理XML处理指令 762
21.2.10 处理错误和警告 763
21.2.11 运行应用程序XML4JSAXParser.java 764
21.2.12 创建JAXP SAX解析器 766
第22章 集合 772
22.1 深入了解 772
22.1.1 集合接口 772
22.1.2 集合类 772
22.1.3 Map接口 773
22.1.4 Map类 773
22.2 快速解决方案 773
22.2.1 使用Collection接口 773
22.2.2 使用List接口 774
22.2.3 使用Set接口 775
22.2.4 使用SortedSet接口 776
22.2.5 使用AbstractCollection类 776
22.2.6 使用AbstractList类 777
22.2.7 使用AbstractSequentialList类 778
22.2.8 使用ArrayList类 779
22.2.9 使用LinkedList类 781
22.2.10 使用HashSet类 783
22.2.11 使用TreeSet类 785
22.2.12 使用Comparator接口 786
22.2.13 使用Iterator接口 788
22.2.14 使用ListIterator接口 789
22.2.15 使用AbstractMap类 790
22.2.16 使用HashMap类 791
22.2.17 使用TreeMap类 793
22.2.18 使用Arrays类 794
22.2.19 使用Enumeration接口 798
22.2.20 使用Vector类 798
22.2.21 使用Stack类 801
22.2.22 使用Dictionary类 803
22.2.23 使用Hashtable类 803
22.2.24 使用Properties类 805
第23章 创建包、接口、JAR文件和Java Beans 808
23.1 深入了解 808
23.1.1 创建包和接口 808
23.1.2 JAR文件 808
23.1.3 Java Beans 808
23.2 快速解决方案 810
23.2.1 创建包 810
23.2.2 创建具有子包的包 811
23.2.3 创建接口 811
23.2.4 部分实现接口 812
23.2.5 创建JAR文件 814
23.2.6 创建JAR文件的目录 815
23.2.7 从JAR文件解压缩文件 815
23.2.8 更新JAR文件 816
23.2.9 把JAR文件读入代码 816
23.2.10 使用javac从JAR文件中获取类 819
23.2.11 让程序从JAR文件中获得类 819
23.2.12 使用Java Beans来设计程序 820
23.2.13 创建使用Java Beans的程序 823
23.2.14 创建Java Bean 824
23.2.15 创建Bean清单文件 826
23.2.16 创建Bean JAR文件 826
23.2.17 使用新的bean 827
23.2.18 向Beans添加控件 827
23.2.19 赋给bean属性 829
23.2.20 创建限制属性 837
23.2.21 赋给Bean方法 837
23.2.22 赋给Bean一个图标 839
第24章 异常处理、调试和高级主题 841
24.1 深入了解 841
24.1.1 异常处理 841
24.1.2 调试 842
24.1.3 网络 842
24.2 快速解决方案 842
24.2.1 捕获异常 842
24.2.2 嵌套try语句 846
24.2.3 释放异常 846
24.2.4 创建自定义异常 847
24.2.5 调试Java程序 848
24.2.6 设置程序安全措施 851
24.2.7 使用URL对象 854
24.2.8 使用URLConnection对象 856
24.2.9 创建并使用网络接口 859
24.2.10 创建TCP客户和服务器 862
24.2.11 从Java提交HTML格式 864
24.2.12 JDBC:使用Java数据库连接 866
24.2.13 创建Java服务条款 880
24.2.14 创建Java服务器页面 884