第1章JAVA语言及核心API 1
1.1 在Java中没有for:使用增强的for循环 2
1.2 计数:使用枚举 4
1.3 执行安全存放:使用类型安全映射 7
1.4 常用的泛型:使用泛型参数来编写方法 8
1.5 使用多个参数:编写Vararg方法 11
1.6 要决断:使用Java断言 13
1.7 以纳秒级的时间计算:使用System.nanoTime 15
1.8 亚毫秒级的线程休眠 16
1.9 创建一个匿名的类 17
1.10 “==”不等于“.equals” 19
1.11 本章小结 21
第2章 字符串实用程序 23
2.1 使用正则表达式来搜索文本 23
2.2 使用String.split方法 26
2.3 在一个String中查找子串模式 26
2.4 使用Regex捕获组 28
2.5 使用正则表达式进行替换 30
2.6 使用Scanner类进行语法分析 32
2.7 使用Scanner类分析复杂的语法 35
2.8 产生随机文本 36
2.9 在Java 1.5中显示数组 38
2.10 二进制编码和解码 40
2.11 使用MessageFormat格式化字符串 44
2.12 使用Formatter(格式化程序)格式化字符串 45
2.13 本章小结 46
第3章 处理XML和HTML 47
3.1 XML简要回顾 47
3.2 使用WebRowSet创建XML 49
3.3 SAX栈:记录SAX中的标签关系 50
3.4 使用SAX:直接调用ContentHandler 54
3.5 筛选式触发ContentHandler 57
3.6 使用DOM4J读取XML文档 60
3.7 使用XPath来简化数据提取 63
3.8 不可见的标签:在加载到DOM4J中之前筛选文档 67
3.9 使用JavaCC创建分析器 69
3.10 将其他语法转换成XML 74
3.11 屏幕抓取HTML页面以获取数据 79
3.12 使用Lucene进行搜索 82
3.13 本章小结 84
第4章 逐步了解语义网(Semantic Web) 85
4.1 N3和Jena概述 87
4.2 为你的组织创建RDF词汇 90
4.3 在Jena中使用RDF层次结构 92
4.4 将Dublin Core附加到HTML文档 94
4.5 使用Jena RDQL进行查询 95
4.6 Lojban、RDF和Jorne项目 98
4.7 使用Informa发布RSS新闻馈送 100
4.8 聚集RSS新闻馈送 102
4.9 使用Informa轮询RSS馈送 103
4.10 使用Informa筛选RSS馈送 104
4.11 本章小结 106
第5章 科学和数学应用 107
5.1 (Fun-Tors)有趣的物件:创建和应用仿函数 108
5.2 奇特的仿函数:使用复合仿函数 110
5.3 大信息容量:使用Colt的BitVector 112
5.4 通过BitMatrix创建真值表 114
5.5 使用JScience Quantities(量) 116
5.6 难以处理的小数:任意精度的运算 118
5.7 使用JScience中的代数函数 120
5.8 连接非门:使用端口连接真值表 121
5.9 使用JGraphT进行连接 124
5.10 连接通用处理单元 126
5.11 使用Joone构建神经网络 129
5.12 将JGAP用于遗传算法 131
5.13 使用Jade构建智能代理 134
5.14 使用JwordNet向导英语 138
5.15 本章小结 140
第6章 图形和数据可视化 141
6.1 使用XML定义Java GUI 141
6.2 利用矢量消除破损:使用SVG显现数据 144
6.3 了解SVG:使用Batik查看SVG的内容 147
6.4 人体艺术:将JGraphT转换成JGraph视图 148
6.5 使用JGraph属性图 150
6.6 绘制新版图:使用JFreeChart创建图表 152
6.7 使用Java创建报表 154
6.8 周期模式:简单的2D数据可视化 156
6.9 精致的变换:在Java 2D中使用仿射变换 159
6.10 提供缩放功能:使用Piccolo构建可缩放的GUI 162
6.11 本章小结 164
第7章 多媒体和线程同步 165
7.1 使用JFugue制作音乐 165
7.2 同Java Sound MIDI一道使用JFugue 167
7.3 将事件发送到一个MIDI输出设备 168
7.4 嘟嘟声和哔哔声:使用JMusic合成声音 170
7.5 嘶嘶声、嗡嗡声、哼哼声:使用JMusic中的噪声和复杂的合成音 172
7.6 使用低级Java Sound(声音) 174
7.7 是的,亲爱的,我正在听:读取来自输入线数据线的音频 177
7.8 对我讲话:采用Java Speech使程序通话 178
7.9 缩减、重用、回收利用无用单元:GC和Javolution实时API 179
7.10 抓紧时间:使用CyclicBarrier同步线程 182
7.11 本章小结 184
第8章 娱乐、集成和项目创意 185
8.1 程序之外的思考:使用Java来控制乐高机器人 185
8.2 使用AWT Robot类控制鼠标 187
8.3 单击和选取:使用JCalendar选取日期 188
8.4 快速投递:使用HttpClient向HTTP服务器投递表单 188
8.5 使用Java模拟单元矩阵(Cell Matrix) 190
8.6 自然界会变戏法:单元矩阵的进化 192
8.7 真正的工蚁:使用Apache Ant运行应用程序 193
8.8 玩赌博游戏:使用BeanShell 194
8.9 测试、测试、再测试:创建JUnit测试 196
8.10 展望未来:将JXTA用于对等式应用 197
8.11 网格是很有用的:使用Globus工具包和网格计算 198
8.12 闲聊:使用Jabber向应用程序添加聊天功能 198
8.13 需要一些汇编:编写JVM汇编语言 199
8.14 字节码缺陷:结合遗传算法与BCEL 200
8.15 “爪哇”替代品:将其他语言编译成字节码 201
8.16 Lojban的语法查看器 201
8.17 打补丁:合成器补丁编辑器 202
8.18 带有连线的单词:WordNet浏览器 202
8.19 可随时提供的信息:自动新闻馈送(Newsfeed)生成器 203
8.20 机器人学校:神经网络机器人 204
8.21 注释革新:Java 5.0注释管理工具 204
8.22 变幻之风:使用CVS和源代码控制 205
8.23 提前伪造:将SourceForge用于你的项目 205
8.24 本章小结 206
术语表 207