百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

每个程序员都应该学习20多种基本Java库和API

toyiye 2024-06-22 20:13 14 浏览 0 评论


这是收集的一些有用的第三方库,Java开发人员应该对此很熟悉。

1.单元测试库[JUnit和Mockito]

单元测试是将普通开发人员与优秀开发人员区分开的最重要的事情。经常为程序员提供不编写单元测试的借口,但是避免单元测试的最常见借口是缺乏流行的单元测试库(包括JUnit,Mockito和PowerMock)的经验和知识。

2. JSON解析库[Jackson和Gson]

在当今的Web服务和IoT世界中,JSON已成为将信息从客户端传输到服务器的首选协议。他们已经将XML替换为以独立于平台的方式传输信息的最优选方式。

不幸的是,JDK没有JSON库。但是,有很多不错的第三方库,例如Jackson和Gson,它们都可以让您解析和创建JSON消息。

3.记录库[Log4j2和SLF4j]

日志记录库非常常见,因为在每个项目中都需要它们。对于服务器端应用程序而言,它们是最重要的事情,因为日志仅放置在您可以看到应用程序中正在发生什么的地方。

即使JDK附带了自己的日志记录库,也可以使用更好的替代方法,例如Log4j,SLF4j和LogBack。



4.通用库[Apache Commons和Guava]

Java开发人员可以使用几个不错的通用第三方库,例如Apache Commons和Google Guava。我总是将这些库包含在我的项目中,因为它们简化了许多任务。

正如约书亚·布洛赫(Joshua Bloch)在“有效Java”中正确说的那样,重新发明轮子没有意义。我们应该更喜欢使用经过测试和测试的库,而不是时不时地编写我们自己的例程。

对于Java开发人员来说,熟悉Google Guava和Apache Commons库是一件好事。

5. HTTP库[HttpClient]

我不喜欢JDK的一件事是它缺乏对HTTP的支持。尽管您可以使用java.net包中的类进行HTTP连接,但是使用开放源代码的第三方库(如Apache HttpClient和HttpCore)并不是那么容易或无缝。

尽管JDK 9带来了HTTP 2.0的支持以及对HTTP的更好支持,但我强烈建议所有Java开发人员熟悉流行的HTTP客户端库,包括HttpClient和HttpCore。



6. XML解析库[Xerces和JAXB]

有许多XML解析库,包括Xerces,JAXB,JAXP,Dom4j和Xstream。Xerces2是Apache Xerces系列中的下一代高性能,完全兼容的XML解析器。

Xerces的这个新版本引入了Xerces本机接口(XNI),它是用于构建解析器组件和配置的完整框架,该框架非常模块化且易于编程。

Apache Xerces2解析器是XNI的参考实现,但是可以使用Xerces本机接口编写其他解析器组件,配置和解析器。

Dom4j是用于Java应用程序的另一个灵活的XML框架。

7. Excel阅读库[Apache POI]

信不信由你–所有现实世界中的应用程序都必须以某种形式与Microsoft Office进行交互。

许多应用程序都需要提供在Excel中导出数据的功能,如果必须从Java应用程序中进行导出,则需要Apache POI API。

这是一个非常丰富的库,可让您从Java程序读取和写入XLS文件。

8.字节码库[Javassist和CgLib]

如果要编写一个框架或库来生成代码或与字节码进行交互,则需要一个字节码库。

它们使您可以读取和修改应用程序生成的字节码。Java世界中一些流行的字节码库是javassist和Cglib Nodep。

Javassist(JAVA编程ASSISTant)使Java字节码操作非常简单。它是用于在Java中编辑字节码的类库。ASM是另一个有用的字节码编辑库。

9.数据库连接池库[DBCP和C3P0]

如果要通过Java应用程序与数据库进行交互,但不使用数据库连接池库,那么您将丢失某些内容。

由于在运行时创建数据库连接会花费时间并且使请求处理变慢,因此始终建议使用DB连接库。最受欢迎的是Commons Pool和DBCP。

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

10.消息传递库[JMS和MQ]

与日志记录和数据库连接类似,消息传递也是许多实际Java应用程序的共同功能。

Java提供了JMS或Java Messaging Service,它不是JDK的一部分。对于此组件,您需要包括一个单独的jms.jar。

同样,如果您使用的是Tibco RV之类的第三方消息传递协议,则需要tibrv.jar 在应用程序类路径中使用第三方JAR — —。

11. PDF库[iText]

与Microsoft Excel相似,PDF库是另一种普遍存在的格式。如果需要在应用程序中支持PDF功能,例如导出PDF文件中的数据,则可以使用iText和Apache FOP库。

两者都提供有用的与PDF相关的功能,但是iText变得越来越丰富。您可以进一步参阅《iText in Action》一书,以了解有关iText的更多信息。

12.日期和时间库[Joda Time]

在Java 8之前,JDK的数据和时间库存在许多缺陷,因为它们不是线程安全的,不可变的,并且不容易出错。许多Java开发人员都依靠JodaTime来实现其日期和时间要求。

从JDK 8开始,没有理由使用Joda,因为您可以在JDK 8的新日期和时间API中获得所有功能,但是如果您使用的是较旧的Java版本,则JodaTime是一个值得学习的库。

13.集合库[Eclipse集合]

尽管JDK具有丰富的集合库,但仍有一些第三方库提供了更多选项,例如Apache Commons集合,Goldman Sachs集合,Google集合,Eclipse集合和Trove。

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

FastUtil是另一个类似的API。它通过提供特定类型的映射,集合,列表和优先级队列来扩展Java Collections Framework,该队列具有较小的内存占用,快速的访问和插入。它还提供了大型(64位)数组,集合和列表,以及针对二进制文件和文本文件的快速,实用的I / O类。

Eclipse Collections是另一个有用的开放课程集合库,值得学习。

14.电子邮件API [Java Mail API]

javax.mail和Apache Commons Email都提供了用于从Java发送电子邮件的API 。它建立在旨在简化的JavaMail API之上。

如果您需要一个项目,则可以使用Java FX构建电子邮件客户端,并在那里使用mail API发送邮件。


15. HTML解析库[Jsoup]

与JSON和XML相似,HMTL是我们许多人必须处理的另一种常见格式。值得庆幸的是,我们拥有JSoup,它大大简化了Java应用程序中HTML的使用。

您可以使用JSoup不仅解析HTML,还可以创建HTML文档

它提供了使用DOM,CSS和类似jquery的最佳方法来提取和处理数据的非常方便的API 。JSoup实现了WHATWG HTML5规范,并且像现代浏览器一样将HTML解析为相同的DOM。

16,Apache Commons Codec

Apache Commons Codec软件包包含用于各种格式(例如Base64和Hexadecimal)的简单编码器和解码器。

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

17.嵌入式SQL数据库库[H2,HSQL和Derby]

我真的很喜欢H2这样的内存数据库,您可以将其嵌入Java应用程序中。它们非常适合测试SQL脚本和运行需要数据库的单元测试。

但是,H2不是唯一的数据库,您还可以选择Apache Derby和HSQL。

19.联网库[Apache MINA]

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


相关推荐

linux 命令行之你真的会用吗?--free 基本用法篇

free命令行统计内存使用率及swap交换分区的使用率数据。是由sourceforge负责维护的,在ubuntu上其包名为procps,这个源码包中,除了free还有ps,top,vmstat,ki...

kong api gateway 初体验(konga github)

kongapigateway初体验(firstsight?)。Kong是一个可扩展的开源API层(也称为API网关或API中间件)。Kong运行在任何RESTfulAPI的前面,并通过插件...

在Ubuntu下开启IP转发的方法(ubuntu20 ip)

IP地址分为公有ip地址和私有ip地址,PublicAddress是由INIC(internetnetworkinformationcenter)负责的,这些IP地址分配给了注册并向INIC提...

基于 Kubernetes 的 Serverless PaaS 稳定性建设万字总结

作者:许成铭(竞霄)数字经济的今天,云计算俨然已经作为基础设施融入到人们的日常生活中,稳定性作为云产品的基本要求,研发人员的技术底线,其不仅仅是文档里承诺的几个九的SLA数字,更是与客户切身利益乃...

跟老韩学Ubuntu Linux系列-sysctl 帮助文档

sysctl一般用于基于内核级别的系统调优,man帮助手册如下。...

如何在 Linux/Unix/Windows 中发现隐藏的进程和端口

unhide是一个小巧的网络取证工具,能够发现那些借助rootkit、LKM及其它技术隐藏的进程和TCP/UDP端口。这个工具在Linux、UNIX类、MS-Windows等操作系统下都...

跟老韩学Ubuntu Server 2204-Linux性能管理-uptime指令帮助手册

uptime指令是每个从事Linux系统工作的相关同学必知必会的指令之一,如下是uptime指令的帮助手册。UPTIME(1)...

Openwrt+Rclone+emby+KODI搭建完美家庭影音服务器

特别声明:本篇内容参考了波仔分享,在此表示感谢!上一篇《Openwrt+emby+KODI搭建家庭影音服务器》只适用影音下载到本地的情形,不能播放云盘中的影音,内容较少,缺少了趣味性,也不直观。...

Linux Shell脚本经典案例(linux shell脚本例子)

编写Shell过程中注意事项:开头加解释器:#!/bin/bash语法缩进,使用四个空格;多加注释说明。命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。默认变量是全局的,在函数...

解决 Linux 性能瓶颈的黄金 60 秒

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。...

跟老韩学Ubuntu Server 2204-Linux性能管理-vmstat指令帮助手册

vmstat可查看ubuntlinux的综合性能,是每个从事Linux人员必知必会、需掌握的核心指令之一。vmstat指令帮助手册如下。VMSTAT(8)...

Python 可视化工具包(python常见的可视化工具)

喜欢用Python做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?本文将介绍一些常用的Python可视化包,包括这些包的优缺点以及分别适用于什么样的场景。这篇文章...

Python的GPU编程实例——近邻表计算

目录技术背景...

python算法体验-3.python实现欧式距离的三种方式

欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。欧式距离源自N维欧氏空间中两点...

python实现Lasso回归分析(特征筛选、建模预测)

实现功能:...

取消回复欢迎 发表评论:

请填写验证码