第一部分 语言 2
第1章 Java的基础概念 2
1.1 编译和执行示例程序 3
1.2 Java的最大优点 6
1.3 Java虚拟机 8
1.4 Java平台 9
1.5 Java语言 10
1.6 Java库 10
1.7 三种执行环境 13
1.8 轻松一刻 14
第2章 面向对象的编程 16
2.1 抽象 17
2.2 封装 17
2.3 基本类型与类类型的比较 18
2.4 对象概念的总结 22
2.5 创建新的对象:构造函数 23
2.6 每个实例和每个类中的成员 33
2.7 final限定符 37
2.8 访问限定符 38
2.9 练习 40
2.10 轻松一刻 40
第3章 示例程序的解释 43
3.1 示例程序的解释 43
3.2 应用程序从何处开始执行 46
3.3 运行时的内部工作原理:堆栈和堆 47
3.4 Obiect类 50
3.5 阅读Java API文档 52
3.6 轻松一刻 55
第4章 标记符、关键字与类型 57
4.1 Java和Unicode 57
4.2 扫描 58
4.3 标记符 58
4.4 注释 59
4.5 关键字 60
4.6 基本类型 61
4.7 字符串连接 68
4.8 字符串比较与intern()方法 68
第5章 名字、数组、运算符与精度 71
5.1 名字 71
5.2 表达式 72
5.3 数组 73
5.4 运算符 80
5.5 相关性 85
5.6 怎样计算精度 85
5.7 拓宽与窄化转换 87
5.8 溢出 89
5.9 Math包 90
5.10 参考读物 92
第6章 面向对象编程的深入介绍——扩展类 93
6.1 继承 93
6.2 异构 102
6.3 Class类 108
6.4 练习 111
第7章 Java语句 113
7.1 编组语句 114
7.2 表达式语句 114
7.3 选择语句 115
7.4 循环语句 116
7.5 控制转移语句 118
7.6 异常处理 120
7.7 断言语句 128
7.8 参考读物 132
7.9 练习 132
第8章 接口 133
8.1 接口能够解决的问题 133
8.2 Comparable接口 136
8.3 Protected的意义 141
8.4 回调 143
8.5 练习 146
9.1 Java包的用途 147
第9章 Java包与可视性 147
9.2 JVM怎样查找类 149
9.3 Java包与访问限定符 150
9.4 编译单元 154
9.5 嵌套类 157
9.6 Character类 163
9.7 练习 165
10.1 什么是线程 166
第10章 线程概念 166
10.2 获得新线程的两种方式 168
10.3 线程的生命周期 171
10.4 线程组 172
10.5 线程编程的四种方式 173
第11章 高级的线程技术 180
11.1 更多的线程编程问题 180
11.2 用于线程的管道I/O 191
11.3 无用单元收集 195
11.4 设计模式 198
11.5 练习 199
11.6 轻松一刻 199
第12章 Java程序实例详解 201
12.1 Java程序案例研究 201
12.2 练习 210
第二部分 Java关键库 212
第13章 简单的输入输出 212
13.1 设计原理 213
13.2 File类与FileDeseriptor类 214
13.3 输出 217
13.4 输出双字节字符 219
13.5 其他Writer包装器 222
13.6 输出ASCII字符和二进制数值 224
13.7 输入 231
13.8 Reader包装器 233
13.9 输入ASCII字符和二进制数值 234
13.10 输入流的包装器 238
13.12 练习 241
13.11 参考读物 241
第14章 高级的输入输出 243
14.1 随机访问文件 243
14.2 读取键盘输入 245
14.3 调用Java程序并获取程序的输出信息 247
14.4 字符串的格式化输出 249
14.5 把对象信息写到磁盘中 252
14.6 新的I/O包 255
14.7 内存映射的I/O 262
14.8 文件锁 264
14.9 字符集与字节存储顺序 265
14.10 练习 269
第15章 正则表达式、集合与实用程序 270
15.1 正则表达式与模式匹配 270
15.2 集合API 281
15.3 其他实用程序类 307
15.4 java.math API 308
15.5 日历实用程序 309
15.6 其他实用程序 313
15.7 参考读物 318
15.8 练习 318
第三部分 服务器端的Java 322
第16章 Servlet与JSP 322
16.1 为什么使用Servlet 324
16.2 版本 325
16.3 安装Tomcat软件 326
16.4 运行Servlet示例程序 328
16.5 端口和协议 329
16.6 使用HTML调用Servlet 331
16.7 Servlet的请求与响应 333
16.8 Servlet请求 334
16.9 响应Servlet请求 335
16.10 编写自己的Servlet 336
16.11 Servlet生命周期与线程 340
16.12 JSP 342
16.13 Servlet与JSP中的Java Bean 345
16.15 练习 346
16.14 参考读物 346
16.16 轻松一刻 347
第17章 Java中的网络编程 349
17.1 TCP/IP基础知识 349
17.2 Java中客户端的套接字 357
17.3 使用Java发送电子邮件 358
17.4 Java中服务器端的套接字 360
17.5 HTTP与Web浏览:获取HTTP页面信息 367
17.6 怎样让applet把文件写到服务器上 372
17.7 多线程的HTTP服务器 373
17.8 在HTTP服务器中使用映射I/O 374
17.9 参考读物 376
17.10 练习 376
第18章 远程方法调用 377
18.1 对象的串行化 377
18.2 远程方法调用 378
18.3 对象通信中间件 387
18.4 练习 388
第四部分 客户端Java 390
第19章 GUI基础和事件处理 390
19.1 关于事件处理 391
19.2 减少事件处理器代码的技巧 396
19.3 事件处理总结 400
19.4 练习 402
19.5 轻松一刻 403
第20章 关于applet 405
20.1 applet与应用之间的不同及它们之间的转换 406
20.2 在Web页面中嵌入Java程序 407
20.3 启动applet执行 408
20.4 Zip文件和Jar文件 415
20.5 Java Web Start 418
20.6 HTML applet标记符 419
20.7 练习 421
20.8 轻松一刻 421
21.1 Java基础类 424
第21章 JFC和Swing包 424
21.2 关于控件(JComponent) 428
21.3 Swing线程 431
21.4 Swing组件 432
21.5 关于Swing组件的补充说明 443
21.6 参考读物 444
21.7 练习 444
22.1 可插入式的窗口观感 446
第22章 容器、布局管理和其他AWT相关技术 446
22.2 关于容器 448
22.3 容器中的布局 454
22.4 其他相关技术 462
22.5 练习 468
22.6 轻松一刻 468
第五部分 企业级Java 472
第23章 Java Bean理论 472
23.1 什么是组件软件 473
23.2 什么是Java Bean 474
23.3 编码阶段、设计阶段和运行阶段 476
23.4 事件处理 477
23.5 有关Bean的约定 479
23.6 安装BeanBox 480
23.7 运行Bean演示程序 481
23.8 定制Bean的属性 483
23.9 联系按钮点击事件与Bean中的方法 483
23.10 激活框架与InfoBus 486
23.11 Bean的限制 487
23.12 企业级Java Bean(EJB) 488
23.13 在应用服务器中使用EJB 490
23.14 EJB小结 491
23.15 参考读物 491
23.16 练习 491
第24章 Java Bean的实际应用 493
24.1 两个Bean规范 493
24.2 ConverterField Bean代码 495
24.3 DoItButton Bean代码 498
24.4 编译代码、生成Jar文件以及将类加载到BeanBox中 499
24.5 Bean的图标表示 500
24.6 BeanInfo类 501
24.7 Descriptor类 504
24.8 属性 505
24.9 绑定的属性 507
24.10 对非可视化Bean属性改动的支持 512
24.11 小结:把属性值改变事件发送给其他Bean 512
24.12 把Swing事件连接到其他Bean中的方法 513
24.14 最终集成的比率计算器 515
24.13 隐藏状态 515
24.15 定制更复杂的属性 516
24.16 限定的属性 517
24.17 不要直接调用另一个Bean中的方法 518
24.18 练习 520
第25章 Java安全 521
25.1 模具(Sandbox) 523
25.2 代码签发 524
25.3 安全管理器 526
25.4 施加安全策略 531
25.5 签发Java程序 534
25.6 参考读物 541
第26章 关系数据库与SQL 542
26.1 关系数据库简介 543
26.2 主键与外部键 545
26.3 一对多和多对多关系 546
26.4 范式 547
26.5 关系数据库术语 548
26.6 SQL基础知识 549
26.7 创建表并添加数据 550
26.8 数据的查询与提取 551
26.9 子查询 554
26.10 SELECT查询的结果集 555
26.11 数据的更新 555
26.12 删除记录与表 556
26.13 SQL预编译语句与存储过程 556
26.15 练习 557
26.14 参考读物 557
第27章 JDBC 558
27.1 下载与安装软件 559
27.2 运行示例程序 561
27.3 连接数据库 562
27.4 执行SQL语句 565
27.5 结果集 567
27.6 SQL语句批处理与交易 570
27.7 预处理语句与存储过程 571
27.8 一个完整的示例程序 572
27.9 数据库与结果集元数据 574
27.10 参考读物 575
27.11 练习 575
27.12 轻松一刻 576
第28章 XML和Java 577
28.1 XML的若干规则 579
28.2 文档类型定义(DTD) 581
28.3 XML的用途 583
28.4 XML版本与术语 584
28.5 JAXP库的内容 586
28.6 使用DOM描述器读取XML 586
28.7 使用DOM扫描器的程序 587
28.8 读取XML文件——SAX扫描器 592
28.9 使用SAX扫描器的程序 593
28.10 Factory设计模式 596
28.11 设计模式小结 599
28.13 下载和安装Java XML软件(JAXP) 600
28.12 Java XML的其他说明 600
28.14 运行示例程序 601
28.15 参考读物 602
28.16 练习 603
28.17 轻松一刻 603
附录A 图形编程 606
附录B 抽象窗口工具包(AWT)中的旧组件 646
附录C 2的幂与ISO8859 678
附录D 光盘的使用 680