目录 1
译者序 1
作者简介 1
致谢 1
前言 1
第1章 关键的Java语言特性和Java库 1
1.1 新语言特性 1
1.1.1 泛型 1
1.1.2 for循环功能的增强 6
1.1.3 可变参数 8
1.1.4 装箱/拆箱转换 9
1.1.5 静态导入 11
1.1.6 枚举 12
1.1.7 元数据 14
1.2 重要的Java实用程序库 21
1.2.1 Java日志 22
1.2.2 Java首选项 50
1.3 小结 56
第2章 用于Java解决方案开发的工具和技术 57
2.1 高质量软件开发的原则 57
2.2 进行高效软件开发的习惯 58
2.2.1 交流 58
2.2.2 模型 58
2.2.3 敏捷化 59
2.2.4 条理性 59
2.2.5 根据需要追溯行为 59
2.2.8 不断学习 60
2.2.9 自底向上开始构建过程 60
2.2.7 从设计(而不是产品)角度考虑代码 60
2.2.6 不要害怕编写代码 60
2.2.10 管理配置 61
2.2.11 单元测试代码 61
2.2.12 持续集成 61
2.2.13 维护短期迭代 62
2.2.14 度量完成的内容——间接度量 62
2.2.15 追踪问题 63
2.3 开发方法 63
2.3.1 瀑布方法 64
2.3.2 统一过程 64
2.3.3 极限编程 65
2.3.4 关于方法的结论 66
2.4 实际开发场景 67
2.4.1 Ant 67
2.4.2 Maven 73
2.4.3 JUnit 76
2.4.4 XDoclet 79
2.4.5 JMeter 84
2.5 小结 85
第3章 Java开发模式 86
3.1 模式为什么重要 86
3.1.1 理解Java编程语言的关键 87
3.1.2 理解Java开发中所使用工具的关键 87
3.1.3 开发有效Java解决方案的关键 88
3.2 基于设计原则构建模式 88
3.2.1 设计单个类 89
3.2.2 在类之间创建关联 89
3.2.3 创建接口 90
3.2.4 创建继承循环 90
3.3 重要的Java模式 91
3.3.1 适配器 92
3.3.2 模型-视图-控制器 94
3.3.3 命令 100
3.3.4 策略 105
3.3.5 组合 108
3.4 小结 111
第4章 使用JFC开发高效用户界面 112
4.1 布局管理器 112
4.1.1 BorderLayout 113
4.1.2 BoxLayout 119
4.1.3 FlowLayout 127
4.1.4 GridLayout 131
4.1.5 GridBagLayout 140
4.1.6 SpringLayout 145
4.1.7 CardLayout 152
4.2 JFrame和JDialog组件 157
4.3 在Swing应用中管理导航流 173
4.4 小结 179
第5章 使用文件持久性保存应用程序 180
5.1 应用程序数据 180
5.2 Java Serialization:持久性保存对象图 183
5.2.1 关键类 184
5.2.2 序列化对象 185
5.2.3 使用序列化使应用程序具有基于时间的许可 190
5.2.4 将序列化组件放入应用程序 193
5.2.5 扩展和自定义序列化 196
5.2.6 使用Java Serialization的时机 199
5.3 Java Bean长期序列化:XMLEncoder/Decoder 200
5.3.1 设计差异 200
5.3.2 关键类 202
5.3.3 序列化Java Bean 203
5.3.4 可能的定制 206
5.3.5 使用XMLEncoder/Decoder的时机 207
5.4 基于XML方案的序列化:用于XML绑定的Java API 207
5.4.1 用于配置对象的样例XML文档 208
5.4.2 使用XML方案定义XML格式 210
5.4.3 根据方案生成JAXB Java类 213
5.4.4 JAXB API关键类 218
5.4.5 编组和解组XML数据 218
5.4.6 在应用程序中使用JAXB生成的类 220
5.4.7 使用JAXB的时机 225
5.4.8 JAXB 2.0的未来方向 226
5.5 小结 226
第6章 使用数据库持久性保存应用程序 228
6.1 JDBC API概述 228
6.3.1 理解两层模型 229
6.3 JDBC API用法 229
6.2 设置环境 229
6.3.2 理解三层模型 230
6.4 掌握JDBC API概念 231
6.4.1 管理连接 231
6.4.2 理解语句 232
6.4.3 使用结果集 241
6.5 JDBC高级概念 244
6.5.1 管理数据库元数据 244
6.5.2 使用RowSet 249
6.5.3 连接池 250
6.5.4 管理事务 251
6.6 使用Hibernate的对象关系映射 252
6.6.1 Hibernate体系结构 253
6.6.2 使用Hibernate开发 254
6.7 小结 264
7.1 模型1及其使用原因 265
第7章 使用模型1体系结构开发Web应用程序 265
7.1.1 JSP 2.0概述 267
7.1.2 集成表达式语言 273
7.1.3 JSTL 1.1概述 274
7.1.4 使用JSTL开发Web应用程序的可视化 277
7.1.5 使用JSP 2.0开发Web应用程序的可视化 282
7.2 小结 294
第8章 使用模型2体系结构开发Web应用程序 295
8.1 问题 295
8.2 什么是模型2 295
8.3 为什么使用模型2 296
8.4 使用WebWork开发一个应用程序 297
8.4.1 控制反转内容及其作用缘由 297
8.4.2 体系结构 299
8.4.3 扩展框架来支持Hibernate 301
8.4.4 定义领域模型 304
8.4.5 实现带有行为的用例 310
8.4.6 开发视图 313
8.4.7 配置应用程序 318
8.4.8 适应变化 321
8.5 小结 322
第9章 使用Java本机接口同C/C++交互 323
9.1 初识Java本机接口 323
9.1.1 创建Java代码 323
9.1.2 创建本机代码和库 324
9.1.3 执行代码 326
9.2 Java本机接口 326
9.2.1 数据类型 327
9.2.2 JNI中的串 327
9.2.3 JNI中的数组 330
9.2.4 C/C++中的Java对象 335
9.2.5 处理本机代码中的Java异常 340
9.2.6 本机代码中的对象引用 342
9.2.7 使用JNI进行高级编程 345
9.3 开发电子邮件客户端 349
9.3.1 系统设计 349
9.3.2 用户界面 350
9.4 小结 359
第10章 在使用RMI和EJB的Java组件之间通信 360
10.1 远程方法调用 360
10.1.1 RMI体系结构探讨 361
10.1.2 开发RMI应用程序 362
10.1.3 远程对象激活探讨 363
10.1.4 RMIChat示例 366
10.2.2 EJB的类型 376
10.2.1 EJB基础 376
10.2 企业JavaBean 376
10.2.3 EJB容器探讨 377
10.2.4 EJB贷款计算器示例 378
10.3 小结 384
第11章 在Java组件和其他平台的组件之间通信 385
11.1 组件通信场景 385
11.1.1 新闻阅读器:自动Web浏览 385
11.1.2 银行应用程序:一个EJB/J2EE客户端 386
11.1.3 门户:集成异构数据源和服务 386
11.2 进程间通信和基本网络体系结构概述 386
11.3 套接字 387
11.3.1 Java Socket API 387
11.3.2 实现一个协议 394
11.4 远程方法调用 404
11.4.1 核心RPC/RMI原则 404
11.4.2 分布式对象 407
11.5.1 CORBA基础 408
11.5 公共对象请求代理体系结构 408
11.5.2 RMI-IIOP:使RMI与CORBA兼容 411
11.5.3 何时使用CORBA 412
11.5.4 分布式文件系统通告:一个CORBA系统示例 413
11.6 Web服务 421
11.6.1 World Wide Web的演化 422
11.6.2 平台无关RPC 424
11.7 小结 436
第12章 使用JMS和JMX进行分布式处理 438
12.1 基本概念 438
12.1.1 JMS基础 438
12.1.2 JMX基础 441
12.2 构建一个分布式应用程序 444
12.2.3 创建一个处理JMS消息的组件 445
12.2.1 决定消息类型 445
12.2.2 理解三组件体系结构 445
12.2.4 创建指引消息通过业务过程的组件 454
12.2.5 创建对大任务进行并行处理划分的组件 456
12.3 部署应用 462
12.3.1 基本部署 462
12.3.2 高级部署 465
12.4 小结 468
第13章 Java安全性 469
13.1 Java加密体系结构和Java加密扩展 469
13.1.1 JCA设计和体系结构 469
13.1.2 Java加密扩展 485
13.2 使用JAAS进行安全性编程 494
13.2.1 用户识别 494
13.2.2 执行安全性检查代码 495
13.2.3 授权 498
13.3 小结 499
第14章 打包和部署Java应用程序 500
14.1 Java CLASSPATH探讨 500
14.2 已核准目录 504
14.3 Java存档探讨 505
14.4 处理JAR文件 505
14.4.1 基本声明文件探讨 508
14.4.2 applet和JAR探讨 508
14.4.3 签名JAR文件 509
14.4.4 JAR索引选项探讨 513
14.4.5 创建可执行JAR 513
14.5 applet分析 514
14.5.1 applet的基本剖析 514
14.5.2 打包可执行applet 515
14.6 Web应用程序探讨 516
14.5.3 applet安全性探讨 516
14.6.1 WAR目录结构探讨 517
14.6.2 理解WAR部署描述符 517
14.7 打包EJB 520
14.8 企业级存档探讨 520
14.8.1 EAR描述符文件 520
14.8.2 部署场景 521
14.9 进入Java Web Start 522
14.9.1 Tic Tac Toe示例探讨 523
14.9.2 Java Web Start小结 529
14.10 使用ANT进行Web存档 529
14.10.1 安装ANT 529
14.10.2 使用ANT构建工程 530
14.11 小结 532
参考文献 534