京东物流|Java程序员应该知道的20个有用的库( 二 )


在web应用程序中 , 它的web服务器通常提供这些功能 , 但在核心Java应用程序中 , 需要将这些连接池库包含到类路径中 , 才能使用数据库连接池 。
10.消息传递库
与日志记录和数据库连接类似 , 消息传递也是许多真实Java应用程序的常见功能 。 Java提供JMS或Java消息传递服务 , 这不是JDK的一部分 。 对于这个组件 , 您需要包含一个单独的jms.jar 。
类似地 , 如果您使用第三方消息传递协议 , 如TibcoRV , 那么您需要在应用程序类路径中使用第三方JAR-tibrv.JAR 。
11.PDF库
与MicrosoftExcel类似 , PDF库是另一种无处不在的格式 。 如果您需要在应用程序中支持PDF功能 , 如导出PDF文件中的数据 , 则可以使用iText和ApacheFOP库 。 两者都提供了有用的PDF相关功能 , 但iText更丰富、更好 。
12.日期和时间库
在Java8之前 , JDK的数据和时间库有很多缺陷 , 因为它们不是线程安全的、不可变的和容易出错的 。 许多Java开发人员依赖JodaTime来实现他们的日期和时间需求 。
在JDK8中 , 没有理由使用Joda , 因为您可以在JDK8的新日期和时间API中获得所有这些功能 , 但是如果您使用的是较旧的Java版本 , 那么JodaTime是一个值得学习的库 。

13.集合库
尽管JDK拥有丰富的集合库 , 但仍有一些第三方库提供了更多选项 , 如ApacheCommons集合、GoldmanSachs集合、Google集合和Trove 。 Trove库特别有用 , 因为它为Java提供了高速的常规和基本集合 。
FastUtil是另一个类似的API 。 它通过提供类型特定的映射、集合、列表和优先级队列来扩展Java集合框架 , 这些映射、集合、列表和队列占用内存小 , 访问和插入速度快;它还提供大(64位)数组、集合和列表 , 以及用于二进制和文本文件的快速、实用的I/O类 。
14.电子邮件API
javax.mail和ApacheCommons电子邮件都提供了从Java发送电子邮件的API 。 它构建在JavaMailAPI之上 , 旨在简化JavaMailAPI 。
15.HTML解析库
与JSON和XML类似 , HMTL是我们许多人必须处理的另一种常见格式 。 有了JSoup , 它大大简化了在Java应用程序中使用HTML的工作 。 您可以使用JSoup不仅解析HTML , 还可以创建HTML文档 。
使用最好的DOM、CSS和类似jquery的方法 , 为提取和操作数据提供了非常方便的API 。 JSoup实现WHATWGHTML5规范 , 并像现代浏览器一样将HTML解析为相同的DOM 。
16.加密库
ApacheCommons编解码器包包含各种格式的简单编码器和解码器 , 如Base64和十六进制 。 除了这些广泛使用的编码器和解码器外 , 编解码器包还维护一组语音编码实用程序 。
17.嵌入式SQL数据库库
我非常喜欢H2这样的内存数据库 , 可以将其嵌入Java应用程序中 。 它们非常适合测试SQL脚本和运行需要数据库的单元测试 。 但是 , H2不是唯一的DB , 您还可以选择ApacheDerby和HSQL 。

18.JDBC疑难解答库
有一些很好的JDBC扩展库 , 可以使调试更容易 , 比如P6spy 。 这是一个库 , 可以无缝地拦截和记录数据库数据 , 而无需更改应用程序的代码 。 您可以使用这些日志记录SQL查询及其计时 。 例如 , 如果您在代码中使用PreparedStatement和CallableStatement , 这些库可以使用参数和执行所需的时间记录精确的调用 。
19.序列化库
Google协议缓冲区是一种以高效但可扩展的格式对结构化数据进行编码的方法 。 它是Java序列化的更丰富、更好的替代方案 。 建议有经验的Java开发人员学习GoogleProtobuf 。
20.网络库
一些有用的网络库是Netty和ApacheMina 。 如果您编写的应用程序需要进行低级网络任务 , 请考虑使用这些库 。