第一部分 Java基础
第1章 Java简介 3
1.1 Java是什么 4
1.1.1 历史 4
1.1.2 为什么使用Java 4
1.1.3 Java的表征性术语 5
1.2 建立Java编程环境 6
1.2.1 Microsoft Windows 6
1.2.2 Linux 6
1.3 编写第一个Java程序 7
1.3.1 编译第一个Java程序 7
1.3.2 运行第一个Java程序 9
1.3.3 理解第一个Java程序 9
1.4 小结 11
第2章 关键字. 数据类型和变量 12
2.1 编程新手 13
2.2 关键字 13
2.3 数据类型 13
2.3.1 人/机通信问题 14
2.3.2 基元数据类型 15
2.4 变量 17
2.5 字面值 19
2.6 数值类型之间的转换 19
2.7 数据类型之间的强制转换 21
2.8 常量 21
2.9 小结 22
2.10 复习题 22
第3章 运算符 23
3.1 算术运算符 24
3.1.1 加法 24
3.1.2 减法 24
3.1.3 乘法 24
3.1.4 除法 25
3.1.5 模数 25
3.2 递增和递减运算符 26
3.3 关系运算符 26
3.4 位运算符 27
3.4.1 与 28
3.4.2 或 29
3.4.3 异或 29
3.4.4 非运算符 29
3.4.5 实际的应用程序 29
3.5 逻辑运算符 30
3.5.1 与 30
3.5.2 或 30
3.5.3 短路运算符 31
3.6 移位运算符 31
3.6.1 左移运算符 32
3.6.2 右移 32
3.6.3 右移(补零) 33
3.7 运算符的优先级 33
3.8 小结 35
3.9 复习题 35
第4章 流控制 36
4.1 条件语句 37
4.1.1 if-then-else语句 37
4.1.2 switch语句 40
4.2 循环结构 42
4.2.1 while语句 42
4.2.2 do语句 42
4.2.3 for语句 43
4.2.4 跳出循环 45
4.2.5 在循环中继续执行 45
4.2.6 标签 46
4.3 小结 47
4.4 复习题 47
4.5 练习题 47
第5章 方法 48
5.1 分而治之 49
5.2 方法的格式 49
5.3 调用方法 50
5.4 复杂的类方法 51
5.5 变量作用域 52
5.6 递归 52
5.7 方法的重载 53
5.8 Java类库 54
5.9 小结 56
5.10 复习题 56
5.11 练习题 56
第二部分 面向对象编程
第6章 类 59
6.1 面向对象程序设计 62
6.1.1 封装 62
6.1.2 信息隐藏 62
6.2 类 62
6.2.1 CarObject类 62
6.2.2 组件属性 63
6.2.3 状态属性 63
6.2.4 行为(方法) 63
6.2.5 Get/Set方法 63
6.2.6 构造函数 64
6.2.7 类范围 65
6.2.8 控制对成员的访问 65
6.2.9 this变量 65
6.2.10 常量 65
6.2.11 组合 66
6.2.12 垃圾收集 66
6.2.13 终结器 66
6.2.14 静态类成员 67
6.3 内部类 67
6.3.1 范围 67
6.3.2 访问修饰符 68
6.3.3 静态内部类 68
6.3.4 匿名内部类 68
6.4 理解对象引用 68
6.5 小结 69
6.6 复习题 69
6.7 练习题 69
第7章 继承 70
7.1 问题的由来 71
7.2 解决方案:接口 73
7.3 何时使用继承 75
7.4 继承关系的准则 75
7.5 树形图 76
7.6 语法 76
7.6.1 final类 76
7.6.2 抽象类 76
7.6.3 访问修饰符 77
7.7 类的终结器 77
7.8 重载方法 78
7.9 动态绑定和多态 78
7.10 小结 78
7.11 复习题 79
7.12 练习题 79
第8章 接口 80
8.1 问题的由来 81
8.2 多重继承 82
8.3 接口语法 83
8.4 实现接口 83
8.5 使用接口实现多重继承 84
8.6 使用接口为类添加外部性能 84
8.7 接口与抽象类的对比 84
8.8 小结 84
8.9 复习题 85
8.10 练习题 85
第9章 异常处理 86
9.1 问题的由来 87
9.2 异常的定义 90
9.2.1 try块 90
9.2.2 catch块 90
9.2.3 finally块 90
9.3 异常的语法 91
9.4 异常类 92
9.5 引发异常 94
9.5.1 声明异常列表 94
9.5.2 创建异常实例 94
9.5.3 引发异常 94
9.6 重新引发异常 95
9.7 通过方法传递异常 95
9.8 创建自定义异常 95
9.9 小结 96
9.10 复习题 97
9.11 练习题 97
第10章 Java类 98
10.1 JavaDoc简介 99
10.2 使用Java的包装类 100
10.2.1 Boolean类 101
10.2.2 Byte类 101
10.2.3 Character类 102
10.2.4 Double类 103
10.2.5 Float类 104
10.2.6 Integer类 105
10.2.7 Long类 106
10.2.8 Short类 107
10.3 使用String类 108
10.3.1 String类 109
10.3.2 StringBuffer类 112
10.3.3 StringTokenizer类 113
10.4 小结 114
10.5 复习题 115
10.6 练习题 115
第11章 集合类 116
11.1 集合类解决的问题 117
11.2 数据结构简介 117
11.2.1 数组数据结构 117
11.2.2 链表数据结构 118
11.2.3 堆栈数据结构 120
11.2.4 队列数据结构 121
11.2.5 哈希表数据结构 121
11.2.6 树数据结构 123
11.3 集合概念 124
11.3.1 列表 125
11.3.2 Set接口 125
11.3.3 Map接口 125
11.3.4 Iterator 125
11.4 集合类 125
11.4.1 ArrayList 126
11.4.2 向量 127
11.4.3 LinkedList 128
11.4.4 Stack类 129
11.4.5 HashSet 129
11.4.6 TreeSet 130
11.4.7 HashMap 131
11.4.8 TreeMap 132
11.5 小结 133
11.6 复习题 133
第12章 使用Java的输入和输出类 135
12.1 问题的由来 136
12.2 作为输入和输出数据源的流 137
12.3 面向字节的流类 137
12.3.1 预定义的流对象 138
12.3.2 过滤流 138
12.3.3 读写文件 139
12.3.4 其他字节I/O类 141
12.4 字符流 141
12.4.1 使用Reader/Writer执行文件I/O 142
12.4.2 字节和字符I/O类 143
12.4.3 执行其他字符I/O 的Reader和Writer类 143
12.4.4 StreamTokenizer 143
12.5 链接流以便使用 144
12.6 小结 144
12.7 复习题 144
12.8 练习题 144
第三部分 图形用户界面
第13章 抽象窗口工具包 147
13.1 容器 148
13.1.1 Applet 149
13.1.2 运行小程序 149
13.1.3 Frame 150
13.1.4 Panel 154
13.1.5 ScrollPane 154
13.2 对话框编程 156
13.3 向GUI添加AWT组件 157
13.3.1 TextField 157
13.3.2 添加按钮 158
13.3.3 TextArea 160
13.3.4 CheckBox 161
13.3.5 CheckboxGroup 162
13.3.6 选择控件编程 163
13.3.7 列表控件编程 163
13.3.8 MenuBar 165
13.3.9 MenuItem 166
13.4 布局管理器 166
13.4.1 BorderLayout管理器 167
13.4.2 FlowLayout 168
13.4.3 GridBagLayout 168
13.5 小结 169
13.6 复习题 170
13.7 练习题 170
第14章 事件委派模型 171
14.1 理解事件 172
14.2 Java事件模型编程 173
14.3 其他事件监听器接口的使用 175
14.3.1 ActionListener接口 176
14.3.2 AdjiustmentListener接口 177
14.3.3 ItemListener接口 178
14.3.4 TextListener接口 179
14.3.5 KeyListener和KeyAdapter接口 180
14.3.6 WindowListener和WindowAdapter接口 181
14.3.7 ComponentListener和 ComponentAdapter接口 183
14.3.8 MouseListener和MouseAdapter接口 183
14.3.9 MouseMotionListener和MouseMotionAdapter接口 184
14.4 小结 185
14.5 复习题 185
14.6 练习题 186
第15章 JavaBean 187
15.1 理解JavaBean 188
15.2 开发简单的JavaBean 189
15.3 在Forte中部署 193
15.4 属性. 方法和事件 195
15.4.1 创建新方法 195
15.4.2 事件 195
15.4.3 PropertyChangeEvent 196
15.5 小结 198
15.6 复习题 199
15.7 练习题 199
第16章 Swing库 200
16.1 理解Swing 201
16.2 Swing应用程序结构 202
16.2.1 窗口管理 203
16.2.2 JFrame 204
16.2.3 JComponent 204
16.2.4 JPanel 204
16.2.5 使用JScrollPane控件 205
16.3 Dialog 206
16.4 使用Swing组件 207
16.4.1 JTextField组件 207
16.4.2 添加按钮 208
16.4.3 JTextArea 209
16.4.4 JCheckBox 211
16.4.5 JRadioButton 212
16.4.6 JList 212
16.5 小结 213
16.6 复习题 213
16.7 练习题 213
第17章 高级Swing 215
17.1 JTable编程 216
17.1.1 添加标题. 滚动条并格式化 218
17.1.2 JTree编程 219
17.2 使用JOptionPane 222
17.3 小结 223
17.4 复习题 223
17.5 答案 223
17.6 练习题 224
第四部分 高级主题
第18章 多线程编程 227
18.1 为什么需要多线程 228
18.2 使用Thread类控制线程 228
18.2.1 创建多线程应用程序 229
18.2.2 设置线程名称 230
18.3 使用Runnable接口创建线程 231
18.3.1 中断线程 232
18.3.2 结束线程 233
18.4 协调线程对变量的访问 234
18.5 线程之间的协调 236
18.6 在线程间发送数据 237
18.7 小结 239
18.8 复习题 239
18.9 练习题 239
第19章 使用Java数据库连接(JDBC)访问数据库 240
19.1 了解数据库的历史 241
19.2 理解为何需要JDBC 242
19.3 Java数据库连接编程 243
19.4 查询数据库 245
19.5 使用JDBC创建表 247
19.6 填充数据库 248
19.7 使用JDBC和GUI来改变数据 249
19.8 小结 251
19.9 复习题 251
19.10 练习题 251
第20章 网络编程 252
20.1 TCP/IP的历史 253
20.2 TCP/IP内幕 253
20.3 应用层 254
20.4 传输层 254
20.5 网络层 255
20.6 网络接口层 255
20.7 简单的套接字编程 256
20.8 使用套接字传输复杂对象 261
20.9 使用套接字传输流 264
20.10 URL类 265
20.11 小结 266
20.12 复习题 267
20.13 练习题 267
第五部分 Web技术
第21章 Servlet 271
21.1 servlet定义 272
21.2 为什么需要servlet 272
21.3 servlet的工作原理 273
21.4 建立Web环境 274
21.5 安装Jakarta Tomcat 274
21.5.1 启动Tomcat 275
21.5.2 测试安装 276
21.6 servlet编程 277
21.6.1 编写通用servlet 277
21.6.2 部署servlet 278
21.6.3 理解HTTP 281
21.6.4 GET命令 281
21.6.5 POST命令 282
21.6.6 其他命令 282
21.6.7 HTTP 1.1 282
21.6.8 HTTP编程 283
21.8 HTML表单和servlet 287
21.9 调用servlet的其他类 289
21.10 使用cookie维护状态 291
21.11 使用会话对象维护状态 293
21.12 小结 296
21.13 复习题 296
21.14 练习题 296
第22章 JavaServer 页面(JSP) 297
22.1 JSP是什么, 不是什么 298
22.2 JSP的优点 298
22.3 JSP如何工作 299
22.4 JSP编程 299
22.4.1 表达式 299
22.4.2 向JSP页面添加scriptlet 299
22.4.3 声明 300
22.4.4 添加注释 300
22.4.5 指令 300
22.4.6 隐式对象 300
22.5 部署和运行JSP 301
22.6 在JSP中定义方法 304
22.6.1 条件输出 305
22.6.2 从HTML表单调用JSP 306
22.6.3 错误处理 307
22.7 小结 307
22.8 复习题 308
22.9 练习题 308
第23章 基于组件的JavaServer页面 309
23.1 理解JSP操作 311
23.2 如何在JSP中包含其他JSP 312
23.3 include操作 312
23.4 从JSP访问JavaBean 315
23.5 使用JavaBean访问数据库 318
23.5.1 更新数据库 320
23.5.2 从数据库中检索数据 321
23.6 小结 323
23.7 复习题 323
23.8 练习题 323
第24章 自定义标记库 324
24.1 什么是自定义标记, 什么不是 325
24.2 自定义标记的工作方式 325
24.3 使用自定义标记体 329
24.4 使用自定义标记传递参数 330
24.5 小结 333
24.6 复习题 333
24.7 练习题 334
第25章 XML 335
25.1 XML的重要性 336
25.2 XML组件 337
25.2.1 XML文档 337
25.2.2 文档类型定义(DTD) 338
25.2.3 文档验证 338
25.2.4 分析技术 339
25.3 使用SAX分析程序读取XML文档 340
25.4 使用文档对象模型(DOM)操作XML文档 343
25.4.1 在内存中生成XML树 343
25.4.2 读取XML树 344
25.4.3 输出XML树 346
25.4.4 操作XML树 346
25.5 XSLT 348
25.5.1 XSL样式表 349
25.5.2 XSLT使用示例 350
25.6 使用JDOM操作XML文档 351
25.6.1 读取XML文档 351
25.6.2 JDOM示例 354
25.7 小结 355
25.8 复习题 355
25.9 练习题 356
第26章 Web 体系结构 357
26.1 组织Web站点 358
26.1.1 Web站点的TCP/IP层次 358
26.1.2 超文本传输协议(HTTP) 359
26.1.3 浏览器 359
26.1.4 Web服务器 360
26.1.5 应用层 360
26.2 Web设计中的缺陷 360
26.3 模型—视图—控制器(MVC)架构 361
26.4 servlet 362
26.5 JavaServer页面(JSP) 363
26.6 JavaScript 365
26.7 Enterprise JavaBean 365
26.8 Web Services 366
26.9 小结 368
26.10 复习题 368
附录
附录A 使用Borland JBuilder 371
A.1 下载JBuilder 372
A.2 安装JBuilder 372
A.3 运行JBuilder 372
A.4 使用IDE开发Java应用程序 374
A.4.1 在项目中创建类 374
A.4.2 调试Java应用程序 376
A.5 使用IDE开发JSP和Java Servlet 378
A.6 小结 381
附录B Sun One Studio 4(Forte)团队版 382
B.1 下载Sun One Studio 4 383
B.2 安装Sun One Studio 4 383
B.3 运行Sun One Studio 4 383
B.4 使用IDE开发Java应用程序 385
B.5 创建项目 385
B.5.1 在项目中创建类 385
B.5.2 调试Java应用程序 387
B.6 使用IDE开发JSP和Java Servlet 388
B.6.1 添加JSP页面 389
B.6.2 添加Servlet 391
B.7 小结 392
附录C 复习题解答 393