第1章 Java SE 6简介 1
1.1 Java版本名称的改变 1
1.2 Java SE 6的主题 2
1.3 Java SE 6的概述 3
1.4 Java SE 6的新特性示例 4
1.4.1 三个新的动作键值和一个隐藏/显示动作文本的方法 4
1.4.2 清除ButtonGroup的选择 9
1.4.3 增强反射功能 9
1.4.4 GroupLayout布局管理器 10
1.4.5 图像I/O的GIF写入插件 11
1.4.6 进一步改进String类型 12
1.4.7 LCD文本支持 13
1.4.8 NumberFormat和舍入模式 13
1.4.9 改进的File基础设施 15
1.4.10 窗口图标图像 16
1.4.11 窗口的最小尺寸 19
1.4.12 Solaris上可中断的I/O开关 20
1.4.13 ZIP文件和JAR文件 20
1.4.14 无主窗口 21
1.4.15 可导航集合 23
1.5 JavaSE6的更新版本1和2 27
1.6 小结 28
1.7 练习 28
第2章 核心类库 31
2.1 BitSet的改进 31
2.2 Compiler API 32
2.2.1 访问编译器和其他工具 33
2.2.2 标准文件管理器 35
2.2.3 编译任务future 36
2.2.4 诊断信息 37
2.2.5 基于字符串的编译 38
2.3 I/O类库的改进 40
2.3.1 控制台I/O 41
2.3.2 获取磁盘空闲空间和其他分区空间的方法 43
2.3.3 文件访问许可方法 45
2.4 数学计算类库的改进 47
2.5 新改进的集合框架 48
2.5.1 更多集合接口和类 48
2.5.2 其他实用方法 54
2.6 新改进的并行框架 61
2.6.1 更多并行接口和类 61
2.6.2 独占同步器和排队长整型同步器 62
2.7 扩展机制和ServiceLoader API 63
2.7.1 扩展机制 63
2.7.2 ServiceLoader API 64
2.8 小结 66
2.9 练习 67
第3章 GUI工具包:AWT 69
3.1 Desktop API 69
3.2 动态布局 76
3.3 对非英语地区输入的改善支持 79
3.4 新模态模型和API 79
3.5 Splash Screen API 85
3.5.1 生成一个闪屏 85
3.5.2 自定义闪屏 86
3.6 System Tray API 89
3.6.1 分析SystemTray和TrayIcon类 89
3.6.2 通过系统托盘快速启动程序 95
3.7 Solaris系统上的XAWT支持 101
3.8 小结 101
3.9 练习 102
第4章 GUI工具包:Swing 103
4.1 在JTabbedPane选项卡标题上放置任意组件 103
4.2 改进的SpringLayout 108
4.3 改进的Swing组件拖放 108
4.4 JTable排序与过滤 111
4.4.1 排序表格行 111
4.4.2 过滤表格行 111
4.5 外观的改进 118
4.6 新的SwingWorker类 119
4.7 文本组件打印 123
4.8 小结 128
4.9 练习 129
第5章 国际化 131
5.1 日本皇家纪年日历 131
5.1.1 日期处理 131
5.1.2 日历页面显示 132
5.2 区分地区服务 137
5.2.1 Service Provider Interface类 137
5.2.2 Java中一个新的货币表示 139
5.3 新地区 143
5.4 Normalizer API 143
5.5 ResourceBundle的改进 146
5.5.1 利用缓存清空 148
5.5.2 控制getBundle()方法 153
5.6 小结 157
5.7 练习 158
第6章 Java数据库连接 161
6.1 JDBC4. 161
6.1.1 自动驱动器加载 162
6.1.2 增强BLOB和CLOB支持 163
6.1.3 增强连接管理 164
6.1.4 增强异常处理 166
6.1.5 国家字符集支持 169
6.1.6 新的标量函数 169
6.1.7 SQLROWID数据类型支持 171
6.1.8 SQLXML数据类型支持 172
6.1.9 包装器模式支持 174
6.2 Java DB 175
6.2.1 Java DB的安装与配置 176
6.2.2 Java DB示例 178
6.2.3 Java DB命令行工具 180
6.2.4 操作EMPLOYEE数据库 183
6.3 小结 187
6.4 练习 188
第7章 监控与管理 189
7.1 动态绑定和Attach API 189
7.1.1 使用带有JMX代理的Attach API 191
7.1.2 使用和您自己的基于Java的代理的Attach API 197
7.2 改进的Instrumentation API 201
7.2.1 再转换支持 202
7.2.2 本地方法支持 203
7.2.3 对其他Instrumentation类的支持 204
7.3 改进的JVM Tool Interface 204
7.4 改进的Management API和JMXAPI 205
7.4.1 Management API的改进 205
7.4.2 JMXAPI改进 207
7.5 JConsole GUI的改变 207
7.6 JConsole插件和JConsole API 208
7.6.1 一个基本插件 209
7.6.2 Basic插件以外的知识 212
7.7 小结 213
7.8 练习 214
第8章 网络化 215
8.1 CookieHandler实现 215
8.2 国际化域名 218
8.2.1 一个IDN转换器 220
8.2.2 一个更好的浏览器 222
8.3 轻量级HTTP服务器 224
8.4 网络参数 227
8.5 SPNEGOHTTP认证 231
8.5.1 质疑-响应机制、证书和认证模式 231
8.5.2 基本认证模式和Authenticator类 231
8.5.3 摘要认证 234
8.5.4 NTLM认证和Kerberos认证 234
8.5.5 GSS-API、SPNEGO和协商认证模式 235
8.6 小结 236
8.7 练习 237
第9章 脚本 239
9.1 Scripting API基础 239
9.1.1 通过脚本引擎管理器从工厂获取脚本引擎 241
9.1.2 计算脚本 245
9.1.3 从脚本中交互Java类和接口 247
9.1.4 通过脚本变量和脚本通信 248
9.1.5 理解绑定和作用范围 251
9.1.6 理解脚本上下文 254
9.1.7 从宏生成脚本 260
9.1.8 编译脚本 261
9.1.9 调用全局函数、对象成员函数和接口实现函数 263
9.1.10 使用命令行脚本Shell 267
9.2 Scripting API和JEditorPane 270
9.3 使用JRuby和JavaFX脚本的Scripting API 280
9.3.1 JRuby和Scripting API 280
9.3.2 JavaFX Script和Scripting API 283
9.4 小结 288
9.5 练习 289
第10章 安全与Web服务 291
10.1 Smart Card I/O API 291
10.2 XMLDigitalSignatureAPI 294
10.2.1 数字签名基础 295
10.2.2 XML签名标准 295
10.2.3 Java和XML Signatures标准 298
10.3 Web服务栈 307
10.3.1 创建并测试自己的Web服务 308
10.3.2 访问一个已有的Web服务 312
10.4 小结 317
10.5 练习 317
附录A 新注解类型 319
A.1 注解处理器的注解类型 319
A.2 Common Annotation 1.0 320
A.3 更多新注解类型 321
附录B 新增及改进后的工具 325
B.1 基本工具 325
B.1.1 改进的Java归档文件管理器 325
B.1.2 改进的Java语言编译器 327
B.2 命令行脚本Shell 331
B.3 Java监控和管理控制台 333
B.4 Java Web服务工具 333
B.5 Java Web Start 334
B.6 安全工具 334
B.6.1 新的keytool选项 335
B.6.2 新的jarsigner选项 335
B.7 故障诊断工具 335
B.8 虚拟机和运行时环境 339
附录C 性能改进 341
C.1 对于灰框问题的修复 341
C.2 性能更好的图像I/O 343
C.3 更快速的Java虚拟机 344
C.4 单线程呈现 344
附录D 参考答案 347
D.1 第1章:Java SE 6简介 347
D.2 第2章:核心类库 348
D.3 第3章:GUI工具包:AWT 350
D.4 第4章:GUI工具包:Swing 354
D.5 第5章:国际化 355
D.6 第6章:Java数据库连接 360
D.7 第7章:监控和管理 365
D.8 第8章:网络化 369
D.9 第9章:脚本 370
D.10 第10章:安全和Web服务 374
附录E Java SE 7展望 379
E.1 闭包 379
E.2 JMX2.0和JMX代理的Web服务连接器 380
E.3 更多脚本语言和invokedynamic 381
E.4 新I/O:下一代I/O 381
E.5 超级包和Java模块系统 382
E.6 Swing应用程序框架 383