一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提高我们的开发效率,下面就来看一下在开发过程中经常会用到的一些开发第三方库,也可能不是太全,就列举一些常见或者常用的吧。

1,日志库

日志库是最常用的,毕竟在开发项目的过程中都需要使用日志来记录项目的运行信息,从而很快的定位项目的发生的问题。尽管JDK附带了自己的日志库,但是还有更好的选择,例如Log4jSLF4jLogBack。一般建议使用SLF4j。比如Alibaba开发手册上也是这样说的,毕竟SLF4J使您的代码独立于任何特定的日志API,就是在项目的其它框架中使用了其它的日志框架库也能够很好的集成。

2,JSON转换库

在当今的web服务、手机api接口开发和物联网世界中,JSON已经成为将信息从客户端传送到服务器的首选协议。它们已经取代了XML,成为以独立于平台的方式传输信息的首选方式。不幸的是,JDK没有JSON库。但是,有许多优秀的第三方库允许您解析和创建JSON消息,比如JacksonGsonFastJson

3,单元测试库库

单元测试是区分普通开发人员和优秀开发人员的最重要的东西。程序员经常被给予不写单元测试的借口,但是最常见的避免单元测试的借口是缺乏流行的单元测试库的经验和知识,包括JUnitMockitoPowerMock

4,通用类库

Java开发人员可以使用一些优秀的通用第三方库,比如Apache Commons和谷歌Guava。我总是在我的项目中包含这些库,因为它们简化了许多任务。正如约书亚•布洛赫(Joshua Bloch)在《Effective Java》一书中正确指出的那样,重新发明轮子是没有意义的。我们应该使用经过测试的库,而不是时不时地编写我们自己的程序。对于开发人员来说,熟悉Apache Commons和谷歌Guava是很有用的

5,HTTP库

虽然JDK中的 java.net 包也能实现HTTP连接,以及Http请求,但是它的使用没有像Apache HttpClientHttpCore这样的开源第三方库简单,执行HTTP请求都得自己自己重复写大量的代码。虽然JDK 9提供了对HTTP 2.0的支持和对HTTP的更好支持,但我强烈建议所有Java开发人员熟悉流行的HTTP客户端请求库,包括HttpClientHttpCore。

6,XML解析库

有许多XML解析库,包括XercesJAXBJAXPDom4jXstreamXerces2是Apache Xerces家族中下一代高性能、完全兼容的XML解析器。这个新版本的Xerces引入了Xerces本机接口(XNI),这是一个用于构建解析器组件和配置的完整框架,非常模块化,易于编程。Apache Xerces2解析器是XNI的参考实现,但是可以使用Xerces本机接口编写其他解析器组件、配置和解析器。Dom4j是另一个用于Java应用程序的灵活XML框架

7,EXCEL库

信不信由你——所有现实世界的应用程序都必须以某种形式与Microsoft Office交互。许多应用程序需要提供在Excel中导出数据的功能,如果必须从Java应用程序中导出数据,则需要Apache POI API。这是一个非常丰富的库,允许您从Java程序读取和写入XLS文件。

8,字节码库

如果您正在编写一个生成代码或与字节码交互的框架或库,那么您需要一个字节码库。它们允许您读取和修改由应用程序生成的字节码。

Java世界中流行的一些字节码库是javassistCglib NodepJavassist 使得JAVA字节码操作非常简单。它是一个用于编辑Java字节码的类库。ASM是另一个有用的字节码编辑库。

9,数据库连接池库

如果您正在与来自Java应用程序的数据库进行交互,但是没有使用数据库连接池库,那么您可能会遗漏一些内容。由于在运行时创建数据库连接需要时间,并且会使请求处理速度变慢,因此总是建议使用DB连接库。其中最流行的是C3P0DBCP,以及阿里的德鲁伊(Druid)

在web应用程序中,它的web服务器通常提供这些功能,但是在核心Java应用程序中,您需要将这些连接池库包含到类路径中,以使用数据库连接池。

10,消息库

与日志记录和数据库连接类似,消息传递也是许多实际Java应用程序的一个常见特性。

Java提供JMS,或者Java消息传递服务,这不是JDK的一部分。对于这个组件,您需要包含一个单独的jms.jar

 类似地,如果您正在使用第三方消息传递协议,比如ActiveMQ,RabbitMQ,那么,您需要在您的应用程序类路径中使用第三方JAR—ActiveMQ,RabbitMQ的JAR。

11,PDF库

Microsoft Excel类似,PDF库是另一种常见的格式。如果需要在应用程序中支持PDF功能,比如导出PDF文件中的数据,可以使用iText和Apache FOP,PDF Box库。

两者都提供了有用的PDF相关功能,但iText更丰富、更好。

12,日期和时间库

在Java 8之前,JDK的数据和时间库有很多缺陷,因为它们不是线程安全的、不可变的和容易出错的。许多Java开发人员依赖于JodaTime来实现他们的日期和时间需求。

从JDK 8开始,就没有理由使用JodaTime ,因为JDK 8的新的日期和时间API提供了所有这些功能,但是如果您使用的是较旧的Java版本,那么JodaTime是一个值得学习的库。

13,集合库

尽管JDK有丰富的集合库,但也有一些第三方库提供了更多的选项,比如Apache Commons集合、Goldman Sachs(高盛公司)集合、谷歌集合和Trove

Trove库特别有用,因为它为Java提供了高速的常规和基本集合。

FastUtil是另一个类似的API。它扩展了Java集合框架,提供了类型特定的映射、集合、列表和优先级队列,占用的内存很少,访问和插入也很快;它还提供了大型(64位)数组、集合和列表,并为二进制文件和文本文件提供了快速、实用的I/O类。

14,邮件API库

javax.mail和Apache Commons Email都提供了从Java发送电子邮件的API。它构建在JavaMail API之上,其目的是简化API。

15,HTML转换库

与JSON和XML类似,HMTL是许多人必须处理的另一种常见格式。谢天谢地,我们有了JSoup,它极大地简化了在Java应用程序中使用HTML的工作。

它提供了一个非常方便的API,可以使用DOM、CSS和类似于jquery的方法来提取和操作数据。JSoup实现了HTML5规范,并像现代浏览器那样将HTML解析为相同的DOM。

16,加密库

apache Commons Codec包包含用于各种格式(如Base64和十六进制)的简单编码器和解码器。

 

除了这些广泛使用的编码器和解码器之外,codec包还维护了语音编码实用程序的集合/

17,嵌入式sql数据库库

H2这样的内存数据库,它可以嵌入到Java应用程序中。它们非常适合测试SQL脚本和运行需要数据库的单元测试。然而,H2并不是唯一的DB,您还可以选择Apache DerbyHSQL。

18,JDBC故障排除库

有一些很好的JDBC扩展库,它们可以简化调试,比如P6spy

这个库使数据库数据能够被无缝地拦截和记录,而不需要对应用程序进行任何代码更改。您可以使用它们来记录SQL查询及其计时。

 例如,如果您在代码中使用PreparedStatment和CallableStatement,这些库可以使用参数记录准确的调用以及执行所需的时间。

19,序列化库

谷歌Protobuf是一种将结构化数据编码为一种高效且可扩展格式的方法。它是Java序列化的更丰富和更好的选择。建议有经验的Java开发人员可以学习一下谷歌Protobuf

20,网络库

一些有用的网络库是NettyApache MINA。如果您正在编写一个需要执行低级网络任务的应用程序,请考虑使用这些库。

以上就是每个Java开发人员都应该使用的一些有用的库。Java领域非常庞大,您会发现有大量的库可以用来做不同的事情。

Java程序员应该知道的20个有用的lib开源库的更多相关文章

  1. java程序员应该知道的20个有用的库

    https://blog.csdn.net/weixin_43923408/article/details/87885668

  2. Java程序员应该知道的10个面向对象理论

    英文原文:10-object-oriented-design-principles 面向对象理论是面向对象编程的核心,但是我发现大部分 Java 程序员热衷于像单例模式.装饰者模式或观察者模式这样的设 ...

  3. Java程序员应该知道的10个Eclipse调试技巧

    Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 1 条件断点 2 异常断点 3 监视点 4 评估/检查 5 修改变量值 ...

  4. Java程序员应当知道的10个面向对象设计原则

    面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式,而没有把足够多的注 ...

  5. java程序员应该熟悉的20个有用的库(转)

    优秀且经验丰富的Java开发人员的一个特点是API的广泛知识,包括JDK和第三方库.我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua Blo ...

  6. (转)Java程序员应该知道的10个调试技巧

    (转自 酷勤网 – 程序员的那点事!http://www.kuqin.com/) 试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里 ...

  7. Java程序员应该知道的10个调试技巧

    试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...

  8. (转) Java程序员应该知道的10个调试技巧

    原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺 ...

  9. Java程序员应该知道的linux命令

    1.查看Java进程:ps -ef|grep java,ps auxf|grep jva; 2.杀死所有Java进程: pkill java, kill -9 进程ID: 3.进入目录:cd /usr ...

随机推荐

  1. vue基础指令了解

    Vue了解 """ vue框架 vue是前台框架:Angular.React.Vue vue:结合其他框架优点.轻量级.中文API.数据驱动.双向绑定.MVVM设计模式. ...

  2. 利用Nginx或koa

    最近在做上传的图片的需求,思考上传之后的图片怎么访问的问题,因为后端是Node,一开始尝试写一个专门的接口通过传入图片的path来查找,试了一下感觉并不理想,因为要为每种类型的文件设置Content- ...

  3. PHP RFI 的小tip

    有关PHP include的帖子网上已经很多了,wooyun的知识库里面也有一篇总结的很好的文章,传送门:http://drops.wooyun.org/tips/3827,今晚在看书的时候看到RFI ...

  4. Seeing AI:计算机视觉十年磨一剑,打造盲人的“瑞士军刀”

    Mary Bellard(左)和AnneTaylor(右)是Seeing AI开发团队的成员,SeeingAI成果的背后是计算机视觉数十年研究的支持. 当Anne Taylor走进一个房间时,她像其 ...

  5. “一亿”的教训:一次Google信箱诈骗是如何得手的?

    网络诈骗是指以非法占有为目的,利用互联网采用虚构事实或者隐瞒真相的方法,骗取数额较大的公私财物的行为.一年比一年网络诈骗越来越高手段,可以说是日益猖獗.在这里提醒一次各位朋友一定要注意自己的网络安全. ...

  6. CSS 技巧汇总

    CSS 选择符优先级 !important 声明>内联样式(style)>id 选择符(#id)>类选择符(.class)=伪类选择符(:hover )=属性选择符([attr] ) ...

  7. NVARCHAR(MAX) 的最大长度

    本文使用的环境是SQL Server 2017, 主机是64位操作系统. 大家都知道,Micorosoft Docs对 max参数的定义是:max 指定最大的存储空间是2GB,该注释是不严谨的: nv ...

  8. python settings 中通过字符串导入模块

    1. 项目文件结构 set_test ├─ main.py # 入口函数 │ ├─notify # 自定义的模块 │ ├─ email.py # 自定义模块 │ ├─ msg.py # 自定义模块 │ ...

  9. 7-2 jmu-python-九九乘法表(矩形) (10 分)

    本题目要求输出如下图所示的九九乘法表 注:乘积要求做格式控制,占4个位置的宽度 输入样例: 无 输出样例: 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8= ...

  10. C与ARM汇编结合实现mini2440串口uart简单程序

    最近学完了ARM的一些基础知识,开始在mini2440上开发一些简单的程序,串口发送程序是一开始涉及多个寄存器的例子,稍有繁多的步骤应该是开发过程中要慢慢适应的境况 下面的程序的目的是实现mini24 ...