第Ⅰ部分 基 础 知 识
第1章 Linux环境 3
1.1 本章内容 3
1.2 命令行 3
1.3 Linux的基本概念和命令 4
1.3.1 重定向I/O 5
1.3.2 ls命令 7
1.3.3 文件名 7
1.3.4 权限 8
1.3.5 文件复制 8
1.3.6 通配符 10
1.3.7 文件内容 11
1.3.8 grep命令 13
1.3.9 find命令 14
1.3.10 再论shell 15
1.3.11 tar和zip命令 19
1.3.12 man命令 20
1.4 本章小结 21
1.5 内容扩展 21
1.6 参考文献 21
第2章 编辑器 22
2.1 概述 22
2.2 了解vi 22
2.2.1 退出 26
2.2.2 查找和替换 27
2.2.3 正则表达式 28
2.2.4 向右缩进:.exrc 29
2.3 品种繁多的编辑器 30
2.3.1 sed或stream edtor 31
2.3.2 简单的图形编辑器 31
2.4 本章小结 32
2.5 有关正则表达式的补充说明 33
2.6 参考文献 33
第3章 Java介绍 34
3.1 本章内容 34
3.2 基本的语言元素 34
3.2.1 数值类型 35
3.2.2 对象类型 38
3.2.3 语句 43
3.2.4 Java风格的错误处理 49
3.2.5 print()、println()和printf() 52
3.3 使用Java API 54
3.3.1 package语句 55
3.3.2 import语句 56
3.4 封装、继承及多态性 57
3.4.1 封装 57
3.4.2 继承 57
3.4.3 多态性 60
3.5 模板 62
3.6 virtually和final关键字 63
3.7 一个简单的应用程序 63
3.8 本章小结 65
3.9 内容扩展 65
3.10 参考文献 65
3.11 练习 66
第4章 执行语境 67
4.1 本章内容 67
4.2 简单的开始 67
4.2.1 命令行参数 67
4.2.2 单元测试 69
4.3 System类 69
4.3.1 Java和标准I/O 69
4.3.2 环境变量 70
4.3.3 Java和环境变量 71
4.4 Properties类 73
4.5 Runtime类 75
4.5.1 exec() 75
4.5.2 可移植性 76
4.6 本章小结 76
4.7 内容扩展 77
4.8 参考文献 77
第5章 Sun Microsystem Java
软件开发包 78
5.1 本章内容 78
5.2 建议 78
5.3 Java编译器 79
5.3.1 编译器行为、默认值和
环境变量 79
5.3.2 javac选项 81
5.4 Java运行库引擎 82
5.4.1 基础 82
5.4.2 java选项 83
5.5 程序文档 83
5.5.1 运行javadoc 83
5.5.2 javadoc命令行选项 85
5.5.3 javadoc注释 87
5.6 applet 89
5.7 本地化 89
5.8 RMI 93
5.8.1 RMI简介 93
5.8.2 rmic工具 97
5.8.3 rmiregistry工具 98
5.8.4 设置服务程序和客户程序 98
5.8.5 RMI概要 100
5.9 Java调试器 100
5.10 Java反编译器 107
5.11 绑定Java程序 110
5.11.1 部署应用程序 110
5.11.2 基本jar操作 112
5.12 其他工具软件 113
5.13 本章小结 114
5.14 内容扩展 114
5.15 参考文献 114
第6章 Linux下的IBM开发工具包,
Java 2技术版 115
6.1 本章内容 115
6.2 多个Java SDK共存 115
6.2.1 链接 115
6.2.2 利用符号链接切换
Java版本 119
6.3 IBM JDK与Sun JDK的
不同之处 120
6.3.1 性能 120
6.3.2 命令上的不同 120
6.3.3 IBM类 121
6.4 “_g”的用途 121
6.5 本章小结 121
6.6 内容扩展 121
6.7 参考文献 121
第7章 GNU编译器 122
7.1 本章内容 122
7.2 GNU的发展 122
7.3 GNU编译器集合 122
7.4 用gcj编译简单应用程序 123
7.4.1 用gcj编译FetchURL 124
7.4.2 编译多类程序 125
7.5 选项和开关 125
7.6 使用gcj的理由 126
7.7 不使用gcj的理由 127
7.8 本章小结 127
7.9 内容扩展 127
7.10 参考文献 127
第8章 CVS 129
8.1 本章内容 129
8.2 源代码控制的原因和方法 130
8.2.1 安装 132
8.2.2 导入 132
8.2.3 一般用法 134
8.2.4 更新 137
8.2.5 合并 137
8.2.6 日志 138
8.2.7 CVS状态 140
8.2.8 cvs tag 140
8.2.9 分支标签 141
8.2.10 cvs export命令 143
8.2.11 效率 143
8.3 jCVS 143
8.4 本章小结 145
8.5 内容扩展 145
8.6 参考文献 146
第9章 ant简介 147
9.1 本章内容 147
9.2 不同创建工具的需求 147
9.3 下载并安装ant 148
9.4 ant buildfile示例 150
9.4.1 XML 150
9.4.2 buildfile标签 151
9.4.3 实际的buildfile 156
9.5 本章小结 158
9.6 内容扩展 159
9.7 参考文献 159
第10章 集成开发环境 160
10.1 本章内容 160
10.2 NetBeans 161
10.2.1 NetBeans的发展史 161
10.2.2 安装NetBeans 161
10.2.3 熟悉NetBeans 163
10.2.4 与CVS集成 166
10.2.5 集成ant 168
10.2.6 其他附加工具 169
10.3 SunONE Studio公共版 170
10.4 Eclipse 170
10.4.1 选择和安装Eclipse 170
10.4.2 在新项目里使用Eclipse 172
10.4.3 在已有的项目上使用
Eclipse 174
10.4.4 使用Eclipse 174
10.5 本章小结 174
10.6 内容扩展 175
10.7 参考文献 175
第Ⅱ部分 开发业务逻辑
第11章 平衡的掌握 179
11.1 本章内容 179
11.2 需求 179
11.3 如何开发软件 180
11.4 如何产生好的需求 181
11.5 需求询问的对象 182
11.6 预算应用程序的需求 182
11.6.1 周一早晨10点 182
11.6.2 回到写字台 184
11.7 文档制作、原型设计和项目
干系人的支持认同 184
11.7.1 文档制作 184
11.7.2 项目干系人的支持认同 185
11.7.3 原型制作 186
11.8 本章小结 186
11.9 内容扩展 187
11.10 参考文献 187
11.11 练习 187
第12章 分析与设计:寻找对象 188
12.1 本章内容 188
12.2 起始工作 188
12.3 使用CRC卡 188
12.4 确定对象 189
12.5 寻找方法和属性 190
12.6 本质与非本质 191
12.7 分析停顿 193
12.8 真实的软件工程 193
12.9 核心类 193
12.10 本章小结 197
12.11 内容扩展 197
12.12 参考文献 197
12.13 练习 197
第13章 JUnit:自动单元测试 198
13.1 本章内容 198
13.2 JUnit 198
13.3 设计,再测试,再编码 198
13.4 安装并运行JUnit 200
13.4.1 下载和解压缩 200
13.4.2 使用JUnit 202
13.5 编写测试案例 203
13.5.1 JUnit论断 206
13.5.2 运行测试案例 207
13.6 运行一组测试程序 208
13.7 本章小结 209
13.8 内容扩展 210
13.9 参考文献 210
13.10 练习 210
第14章 数据存储 211
14.1 本章内容 211
14.2 数据库设计 211
14.3 持久性 211
14.4 独立性 211
14.5 Oracle、PostgreSQL和
MySQL 212
14.5.1 MySQL 212
14.5.2 PostgreSQL 212
14.5.3 Oracle 212
14.5.4 选择标准 213
14.6 在代码中设置数据库 213
14.7 持久性 214
14.8 持久性并非设计数据库表
的唯一考虑 215
14.9 设置PostgreSQL 215
14.9.1 安装PostgreSQL 215
14.9.2 创建postgres用户 216
14.9.3 创建数据库 216
14.9.4 JDBC 217
14.10 本章小结 218
14.11 内容扩展 218
14.12 参考文献 218
14.13 练习 218
第15章 数据访问:JDBC 219
15.1 本章内容 219
15.2 JDBC介绍 219
15.3 连接 222
15.4 查询数据 223
15.5 查询结果 224
15.6 更新、插入和删除数据 225
15.7 本章小结 225
15.8 内容扩展 225
15.9 参考文献 226
15.10 练习 226
第Ⅲ部分 开 发 GUI
第16章 GUI设计 229
16.1 本章内容 229
16.2 一个简单的Swing程序 229
16.3 Swing示例 230
16.4 基本的Swing对象 231
16.5 布局管理器 233
16.6 行为、监听器与事件 233
16.7 设计GUI 234
16.7.1 概况 235
16.7.2 创建块 236
16.8 本章小结 252
16.9 内容扩展 252
16.10 参考文献 253
16.11 练习 253
第17章 SWT 254
17.1 本章内容 254
17.2 IBM SWT工具包 254
17.2.1 另一种GUI工具包 254
17.2.2 介绍SWT的原因? 255
17.2.3 移植性 255
17.2.4 本章其他内容 255
17.2.5 SWT:贴近硬件 256
17.2.6 “Hello, world” SWT
类型 256
17.3 移植BudgetPro到SWT 258
17.3.1 第1步:转换类成员 260
17.3.2 第2步:转换
main()方法 262
17.3.3 第3步:转换GUI build()
和init()方法 262
17.3.4 完成BudgetPro类
的转换 265
17.3.5 完成应用程序的转换 265
17.3.6 SWT和Swing的比较 265
17.4 SWT和gcj 266
17.5 本章小结 267
17.6 内容扩展 267
17.7 参考文献 267
17.8 练习 268
第Ⅳ部分 开发Web接口
第18章 servlet 271
18.1 本章内容 271
18.2 servlet 271
18.3 深入理解与servlet的交互 272
18.4 如何编写servlet 274
18.5 输入与输出 277
18.6 状态问题:cookie、隐藏
变量以及“后退”按钮 278
18.7 设计BudgetPro servlet 280
18.7.1 原型 280
18.7.2 设计 280
18.8 本章小结 283
18.9 内容扩展 283
18.10 参考文献 283
18.11 练习 283
第19章 JSP 285
19.1 本章内容 285
19.2 JSP 285
19.3 如何编写JSP应用程序 287
19.3.1 scriptlet 287
19.3.2 声明 289
19.3.3 表达式 289
19.3.4 指令 291
19.3.5 新语法 292
19.3.6 JSP中的JavaBeans 292
19.3.7 标记库 294
19.4 在BudgetPro应用程序
中使用JSP 295
19.5 本章小结 296
19.6 内容扩展 296
19.7 参考文献 296
19.8 练习 297
第20章 开源代码的Web应用
程序服务器 298
20.1 本章内容 298
20.2 下载JBoss 298
20.3 软件系统的管理 299
20.3.1 无需root权限安装软件 299
20.3.2 出色的粒度访问控制 302
20.4 安装JBoss 302
20.5 开源应用程序服务器与系统
的集成 303
20.5.1 System V的init系统 303
20.5.2 RedHat/Fedora的
chkconfig程序 308
20.5.3 其他发行版 312
20.5.4 IDE集成 312
20.6 部署 312
20.7 Apache Geronimo 314
20.8 安装Geronimo 314
20.9 运行Geronimo服务器 315
20.10 本章小结 315
20.11 内容扩展 316
20.12 参考文献 316
第Ⅴ部分 开发企业级可
扩展软件
第21章 Enterprise JavaBeans
介绍 319
21.1 本章内容 319
21.2 EJB扩展 319
21.2.1 EJB概念 319
21.2.2 bean类型 321
21.2.3 EJB的内幕 324
21.3 JNDI介绍 324
21.3.1 命名以及目录系统
的概念 324
21.3.2 通用目录服务 325
21.3.3 JNDI 327
21.3.4 通过JBoss使用JNDI 330
21.4 本章小结 330
21.5 内容扩展 330
21.6 参考文献 330
第22章 建立EJB 331
22.1 本章内容 331
22.2 了解bean 331
22.2.1 SessionBean 332
22.2.2 EJBObject 334
22.2.3 EJBHome 335
22.2.4 会话bean、远程接口
以及home接口小结 335
22.2.5 EJBLocalHome与
EJBLocalObject 335
22.2.6 编译bean 336
22.3 本章小结 337
22.4 内容扩展 338
22.5 参考文献 339
第23章 部署EJB 339
23.1 本章内容 339
23.2 Enterprise打包与部署 339
23.2.1 EJB-JAR文件的内容 341
23.2.2 使用bean 343
23.2.3 打包servlet 344
23.3 部署EAR 346
23.3.1 JBoss 346
23.3.2 Geronimo 346
23.4 维护分布式应用程序 346
23.4.1 And与 CVS 347
23.4.2 XDoclet 348
23.5 抽象传统的应用程序 348
23.6 本章小结 348
23.7 内容扩展 348
23.8 参考文献 349
第24章 临别赠言 350
24.1 未来如此光明,但我有些
迷惑 350
24.2 欢迎您的参与 350
24.3 到来的革命 350
24.4 内容扩展 351
24.5 参考文献 351
附录A ASCII图表 353
附录B BudgetPro的Java
Swing GUI 355
附录C GNU通用公共许可证 365