具体描述
《Jakarta Commons Cookbook中文版》采用O'Reilly Cookbook系列丛书所惯用的"问题-求解"模式,概述了可供使用的软件库,从而为开发者提供使用这些工具的桥梁。Java一直承诺向开发人员提供可重用、模块化和可移植的特性。开发者无需从头构建,而是可以对已有的框架和组件进行扩展,或按需定制。一个典型的例子就是万维网联盟(W3C)定义的DOM接口。应用程序开发人员很少会去编写自己的XML解析器,但他们常常编写自己的组件,而这些组件的功能在一些自由软件库中已经实现了,只是开发者们不知道这些开源组件的存在罢了。这里仅列出部分
作者简介
目录信息
第1章 扩展J2SE平台 11
1.0 简介 11
1.1 获取Commons Lang 12
1.2 加入Commons-User邮件列表 13
1.3 获取Commons Lang源代码 14
1.4 自动生成toString()内容 15
1.5 自定义toString()内容 17
1.6 自动生成hashCode()和equals() 19
1.7 自动实现compateTo() 21
1.8 输出数组内容 23
1.9 克隆和反转数组 24
1.10 对象数组和基本类型数组的互相转换 27
1.11 在数组中搜索特定项 29
1.12 由多维数组生成Map 30
1.13 格式化日期 32
1.14 舍入Date对象 34
1.15 截取Date对象 36
1.16 创建枚举量 37
1.17 生成唯一的数字标识符 41
1.18 验证方法参数 44
1.19 度量时间 46
第2章 处理文本 49
2.0 简介 49
2.1 获取StringUtils和WordUtils 50
2.2 检查空字符串 50
2.3 缩减字符串 52
2.4 分割字符串 54
2.5 搜寻嵌套字符串 55
2.6 裁减字符串 57
2.7 字符串的chomp处理 58
2.8 创建醒目的标题 59
2.9 反转字符串 59
2.10 单词折回 61
2.11 检测字符串内容 62
2.12 检测字符串出现频率 64
2.13 解析格式化字符串 66
2.14 计算字符串的差别 68
2.15 使用Commons Codec 70
2.16 获取Commons Codec源代码 71
2.17 计算Soundex编码 72
第3章 JavaBeans 74
3.0 简介 74
3.1 以图形方式表示Beans 75
3.2 获取Commons BeanUtils 78
3.3 获取Commons BeanUtils源代码 79
3.4 访问简单的Bean属性 80
3.5 访问嵌套Bean属性 82
3.6 访问带有下标的Bean属性 84
3.7 访问Map型Bean属性内容 85
3.8 访问一个嵌套的带有下标的Map型简单Bean属性 87
3.9 确定Bean属性的类型 88
3.10 比较Beans 90
3.11 复制Bean属性 93
3.12 Bean的克隆 95
3.13 设置Bean属性 95
3.14 检查可否访问属性 97
3.15 通过Predicates验证Beans 98
3.16 创建包含Bean属性的Map 100
3.17 使用Map封装Bean 101
3.18 创建动态Bean 103
3.19 以字符串形式读取和设置属性 105
第4章 函子 107
4.0 简介 107
4.1 获取Commons Collections 108
4.2 获取Commons Collections源代码 109
4.3 Comparator的功能反转 109
4.4 Comparators的链接 112
4.5 对null的比较 114
4.6 以固定顺序比较 116
4.7 使用简单的Predicates 119
4.8 自定义Predicate 124
4.9 创建复合Predicate 126
4.10 对象转换 130
4.11 创建转换链 131
4.12 实现条件转换 133
4.13 编写Closure 135
4.14 链接多个Closure 136
4.15 使用Closures模拟条件语句 137
4.16 使用Closure模拟循环 140
第5章 Collections 142
5.0 简介 142
5.1 获取Commons Collections 142
5.2 使用循环迭代器 143
5.3 遍历ArrayList 145
5.4 使用Predicate筛选Collection 147
5.5 遍历相异的元素 150
5.6 使用Bag 151
5.7 使用Buffer 156
5.8 创建优先队列 158
5.9 使用阻塞式缓冲区 162
5.10 在Map中存储多个值 165
5.11 根据值检索相应的键 167
5.12 使用大小写不敏感的Map 170
5.13 创建特定类型的Collection和Map 172
5.14 限制Map的取值 176
5.15 限制List的内容 179
5.16 转换Collections 180
5.17 创建LRU缓存 183
5.18 使用LazyMap 184
5.19 统计Collection中对象的出现次数 188
5.20 执行集合操作 190
5.21 不经强制转换检索Map的值 192
第6章 XML 194
6.0 简介 194
6.1 获取Jakarta Commons Digester 195
6.2 将XML文档转为对象 196
6.3 带命名空间的解析 200
6.4 创建简单XML命令语言 204
6.5 变量置换和XML解析 207
6.6 获取Jakarta Commons Betwixt 210
6.7 转换Beans为XML文档 211
6.8 定制由对象生成的XML 213
6.9 转换XML文档为Beans 216
第7章 应用程序基础设施 219
7.0 简介 219
7.1 获取Commons CLI 219
7.2 解析简单命令行 220
7.3 解析复杂命令行 222
7.4 显示使用方法信息 223
7.5 获取Commons Configuration 225
7.6 通过属性文件配置应用程序 226
7.7 通过XML配置应用程序 227
7.8 使用复合配置 229
7.9 获取Commons Logging 232
7.10 使用抽象日志接口 233
7.11 指定日志的实现 234
7.12 获取Apache Log4J 235
7.13 根据属性文件配置Log4J 236
7.14 通过XML配置Log4J 238
第8章 Math 240
8.0 简介 240
8.1 使用分数 241
8.2 在数组里寻找最大和最小数 243
8.3 处理数字的范围 244
8.4 生成随机变量 246
8.5 获取Commons Math 247
8.6 计算简单的单变量统计量 248
8.7 解线性方程系统 250
8.8 带复数的算术操作 252
8.9 在变量间建立关联 254
8.10 估计剩余处理时间 256
第9章 模板 261
9.0 简介 261
9.1 获取Commons JEXL 264
9.2 使用表达式语言 265
9.3 在表达式中调用方法 268
9.4 以表达式语言外置逻辑 269
9.5 获取Jakarta Velocity 271
9.6 使用简单模板语言 272
9.7 编写含有条件和循环的模板 274
9.8 在模板引擎中使用宏 277
9.9 在模板中调用方法 280
9.10 获取FreeMarker 284
9.11 使用复杂的脚本引擎 285
9.12 从模板引擎访问XML文档 288
9.13 在Web应用程序中使用Velocity 291
9.14 在Web应用程序中使用FreeMarker 292
9.15 在Eclipse中编写模板 294
第10章 I/O与网络 295
10.0 简介 295
10.1 获取Commons IO 296
10.2 拷贝Stream、byte[]数组、Reader和Writer 297
10.3 关闭Stream、Reader和Writer 298
10.4 输出易于理解的文件大小值 300
10.5 拷贝文件、字符串和URL 302
10.6 递归删除目录 303
10.7 获取目录大小 304
10.8 文件touch操作 304
10.9 筛选文件 305
10.10 测量Stream流量 306
10.11 拆分OutputStream 308
10.12 获取Jakarta ORO 308
10.13 使用glob表达式和Perl5正则表达式列举文件 309
10.14 获取Commons Net 310
10.15 编写FTP客户端 311
10.16 通过SMTP发送邮件 313
10.17 查看POP3邮箱 315
第11章 HTTP和WebDAV 318
11.0 简介 318
11.1 获取Jakarta HttpClient 318
11.2 获取Jakarta HttpClient源代码 320
11.3 执行HTTP GET 321
11.4 在查询字符串中发送参数 323
11.5 通过条件GET检索内容 325
11.6 调试HTTP 328
11.7 执行HTTP POST请求 330
11.8 发送来自文件的POST数据 332
11.9 通过Multipart POST上传文件 333
11.10 Basic型身份验证 335
11.11 NTLM身份验证 338
11.12 处理Cookie 339
11.13 处理重定向 342
11.14 SSL 345
11.15 使用自签发的证书 346
11.16 获取Jakarta Slide 347
11.17 连接WebDAV资源 349
11.18 修改WebDAV资源 351
第12章 搜索和筛选 353
12.0 简介 353
12.1 获取Commons JXPath 354
12.2 通过XPath查询对象图表 354
12.3 搜索一组简单对象 357
12.4 在复杂的对象图表中使用XPath查询 359
12.5 获取Jakarta Lucene 362
12.6 为XML文档创建索引 363
12.7 在文档索引中搜索指定词语 368
12.8 找出索引中词语出现的频率 372
· · · · · · (收起)
读后感
没仔细看,应该还可以,不过看的是英文的电子版 这比看API要轻松多了,不过还是比较简单,需要的时候还是要看API的。
Jakarta工具包可谓java开发中的必备神器, 熟悉里面各种工具类的用法, 可以让我们少重复发明一些轮子.它里面的一些commons包也成了很多开源项目的必备依赖. 比如spring, hibernate之流. 这本书讲到了Jakarta中几个比较重要的包的用法, 由于Jakarta中很多工具类的JavaDoc写的非...
Jakarta工具包可谓java开发中的必备神器, 熟悉里面各种工具类的用法, 可以让我们少重复发明一些轮子.它里面的一些commons包也成了很多开源项目的必备依赖. 比如spring, hibernate之流. 这本书讲到了Jakarta中几个比较重要的包的用法, 由于Jakarta中很多工具类的JavaDoc写的非...
我个人觉得不错,每个类写的不错,比较适合我的口味。看api电子书看的难受,这样有分析的很清楚的,减少我不少时间。。。
毕业3年的时候看过,一本介绍性质的书,涵盖Jakarta commons各个常用的包。可以当作工具书,要用的时候翻翻。 Jakarta commons里面有些包的源代码还是挺不错的,可以去研究下。
用户评价
从内容深度来看,这本书的价值远超一般的“入门速查手册”。它不仅仅停留在教你“如何使用”,更深入地探讨了“为什么这么设计”。我特别欣赏其中穿插的“性能考量”和“最佳实践”章节。在处理大量数据或高并发场景时,Jakarta Commons中的某些工具类(比如集合框架的扩展)表现出了远超标准库的效率,而这本书并没有简单地罗列这些优势,而是通过对比测试和内部机制的剖析,让读者清晰地看到效率提升的根源。例如,它对某些I/O操作的缓冲区管理策略的分析,我感觉受益匪浅,这对于优化我们自己项目中的资源密集型任务非常有指导意义。这说明编写者不仅是这些工具的使用者,更是深度参与者或至少是对其设计哲学有透彻理解的人,使得这本书的权威性得到了极大的增强,不再是空中楼阁般的理论指导。
这本书的翻译质量,说实话,超出了我作为一名资深技术阅读者的预期。中文的流畅度和术语的准确性达到了一个非常高的水准。很多技术书籍的译本,常常在人机交互界面(UI)或核心算法描述上出现“翻译腔”,读起来佶屈聱牙,需要读者反复对照英文原文才能理解。但《Jakarta Commons Cookbook中文版》几乎完全避免了这个问题。作者(译者)显然对Java生态以及Jakarta的演进历史有着深刻的理解,他们没有生硬地逐字翻译,而是根据中文技术语境进行了合理的转译和阐释。例如,书中对某些设计模式在Commons组件中的体现,阐述得非常到位,使得原本可能需要花数小时在Stack Overflow上搜索才能弄明白的细微差别,通过几段精炼的中文描述便豁然开朗。这种对本地化阅读体验的极致追求,无疑是提升学习效率的关键要素,也体现了出版方对技术社区的尊重。
这本书给我的最大感受是“实用主义的胜利”。它不是一本为了追求“新潮”而堆砌最新技术名词的书籍,而是专注于那些经过时间考验、在企业级应用中被广泛验证的稳定组件。在软件开发领域,稳定性和可靠性往往比一时的性能峰值更为重要,而Jakarta Commons系列正是这一理念的体现。通过阅读这本书,我不仅巩固了对已有知识点的理解,更重要的是,它启发了我如何以一种更加模块化、可复用的方式去构建自己的辅助工具类库。书中对代码的组织和维护性的强调,潜移默化地影响着我后续的代码习惯。总而言之,这本“Cookbook”与其说是一本技术参考书,不如说是一本经验丰富的导师,用最清晰的语言,教授着如何构建健壮、高效的Java应用程序的“手艺”。
这本《Jakarta Commons Cookbook中文版》的装帧设计实在是让人眼前一亮,光是封面那深邃的蓝色调和简洁的排版,就透露出一种专业而沉稳的气息,仿佛预示着内里蕴含的知识将是多么的扎实可靠。我原本对“Commons”这个概念总是有点模糊,总觉得它似乎涵盖了太多零散的小工具,难以形成系统的认知。然而,这本书的编排逻辑彻底打消了我的顾虑。它不像那种堆砌API文档的枯燥手册,而是真正像一本“烹饪指南”,每道“菜肴”——也就是每个工具或组件的用法——都配有详尽的“配料表”(前置条件和环境准备)和清晰的“烹饪步骤”(代码示例与解析)。特别是对于初次接触Apache Jakarta体系的开发者来说,这种 Cookbook 的形式极大地降低了学习曲线。我记得我当时对其中关于文件操作工具类的部分尤其感兴趣,它提供了一种比JDK原生方法更优雅、更健壮的处理文件流的方式,书中对异常处理的精妙设计讲解得淋漓尽致,让人在实战中能少走很多弯路,这种注重实效的编写风格,是很多理论书籍所不具备的宝贵特质。
这本书的结构安排,充分考虑了不同水平读者的需求。对于需要快速解决特定问题的工程师,可以直接跳转到对应章节,找到那个现成的“配方”并立即应用到工作中,效率极高。而对于希望全面掌握Jakarta Commons设计思想的初学者或架构师,它又提供了一条清晰的学习路径,从基础的数据结构操作,逐步过渡到更复杂的资源管理和线程同步辅助类。我个人最欣赏的是它对那些“冷门”但“关键”工具的介绍。很多教程只会关注最流行的那些组件,而这本书却花费了不少篇幅讲解那些在特定、棘手场景下能发挥奇效的小工具,比如特定场景下的序列化优化方案,或者异常链的统一处理机制。这些内容往往是我们在实际项目中遇到瓶颈时最需要的救命稻草,其全面性令人称赞,让这本书的适用范围极大地拓宽了。
看个大概即可,要细节还是看最新版本的代码
如果commons项目能进入jdk的话,java开发就不会这么累了
java的工具包,看一遍,可以使自己明白大概能干什么,到时候再查具体的doc和api就好了。回想起来当年第一次用math包的时候,感慨万千啊。
看个大概即可,要细节还是看最新版本的代码
中级Java程序员都应该读的书!它能让你少写很多代码,并且写出的代码也更加简洁!