Java开发中常用jar包整理及使用
本文整理了我自己在Java开发中常用的jar包以及常用的API记录。
一、common-lang3
简介:一个现在最为常用的jar包,封装了许多常用的工具包
(推荐视频:java视频教程)
依赖:
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency>
主要常见的类如下:
数组工具类 ArrayUtils
日期工具类 DateUtils DateFormatUtils
字符串工具类 StringUtils
数字工具类 NumberUtils
布尔工具类 BooleanUtils
反射相关工具类 FieldUtils、MethodUtils、MemberUtils、TypeUtils、ConstructorUtils
对象工具类 ObjectUtils
序列化工具类 SerializationUtils
API介绍
这里我只介绍经常使用的几个工具类及方法,ArrayUtils,StringUtils,NumberUtils,DateUtils,其他的请查看官方API文档吧
1.ArrayUtils
方法名 | 说明 |
---|---|
add | |
remove | |
clone | 复制数组 |
addAll | |
removeAll | 第二个参数传入需要删除的下标(可以指定多个下标) |
toObject | 把数值(int[],double[])转为包装类(Int[],Double[]) |
indexOf | 在数组按顺序查找,找到第一个满足对应的数值的下标 |
lastIndexOf | 在数组按顺序查找,找到最后一个满足对应的数值的下标 |
contains | 数组是否包含某个值 |
isEmpty | 判断数组是否为空 |
isNotEmpty | 判断数组是否不为空 |
reverse | 数组反转 |
subarray | 指定区间截取数组,区间为半开区间,不包含末尾 |
toArray | 接收一个多个对象,把这几个对象转为对应类型的数组 |
toMap | 将一个二维数组转为Map |
2.NumberUtils
方法名 | 说明 |
---|---|
min | 比较三个数,返回最小值 或比较指定的几个数,返回最小值 |
max | 比较三个数,返回最大值 或比较指定的几个数,返回最大值 |
createInt | 从传入的String中创建对应类型的数值,createDouble,createFloat... |
toInt | 将指定字符串转为Int类型,可以选择指定默认数值,如果字符串为null则返回默认数值,除此之外,还有toDouble,toLong...等转为不同类型的方法 |
compare | 比较两个同类型数值的大小 |
isDigits | 判断字符串是否只包含数字 |
isParsable | 判断字符串是否可转换为Long,Int等类型 |
isNumber | 判断字符串是否为数值(0x,0X开头等进制数值) |
3.DateUtils
方法名 | 说明 |
---|---|
parseDate | 将Date对象转为字符串 |
isSameDay | 判断两个Dated对象是否为同一天 |
isSameDay | 判断两个Dated对象是否为同一天 |
addHour | 将指定的Date对象加上指定小时,除此之外,还有addMonth,addDay..等 |
DateFormatUtils正如其名,是用来把时间转为字符串,这里就不再多说
4.StringUtils
方法名 | 说明 |
---|---|
join | 将指定的数组连接成字符串,并添加指定的分割字符 |
containOnly | 字符串是否只包含某个字符串 |
substringBefore | 截取指定字符串前面的内容 |
substringAfter | 截取指定字符串后面的内容(不包括指定字符串) |
substringBetween | 截取字符串某区间内容,如substringBetween("abcde","a","e")="bcd" |
difference | 比较两个字符串,返回两个字符串不同的内容,具体可以看API文档给出的示例 |
isBlank | 判断字符串是否为空白,null,""," "这三个结果都是为true |
isEmpty | 判断字符串是否为空(只要不为null,或传入的String对象的长度不为0即为true) |
countMatches | 判断指定的字符串在某个字符串中出现的次数 |
deleteWhitespace | 删除字符串中的空格 |
defaultIfBlank | 如果字符串为空白,则返回一个指定的默认值(null或某个String) |
defaultIfEmpty | 如果字符串为空,则返回一个指定的默认值(null或某个String) |
capitalize | 将指定字符串首字母大写 |
abbreviate | 将指定字符串的后面三位转为... |
swapCase | 将字符串中的字母大小写反转,如aBc变为AbC |
lowerCase | 将字符串的字母全部转为小写 |
upperCase | 将字符串的字母全部转为大写 |
left | 取字符串左边几个字符,如left("hello",3)="hel",right与此相反 |
leftPad | 字符串的长度不够,则使用指定字符填充指定字符串,如leftPad("hel",5,"z")="zzhel",rightPad方法与此相反 |
prependIfMissing | 指定字符串不以某段字符串开头,则自动添加开头,如prependIfMissing("hello","li")="lihello" |
prependIfMissing | 指定字符串不以某段字符串开头(忽略大小写),则自动添加开头 |
getCommonPrefix | 获得多个字符串相同的开头内容,接收参数为多个字符串 |
removeEnd | 删除字符串中结尾(满足是以某段内容结尾),如removeEnd("hello","llo")="he" |
removeEndIgnoreCase | 与上面一样,忽略大小写 |
removeStart | 与上面的相反 |
remove | 删除字符串中的指定内容,如remove("hello","l")="heo" |
removeIgnoreCase | 删除字符串中的指定内容,如remove("hello","l")="heo" |
strip | 清除字符串开头和末尾指定的字符(第二个参数为null,用来清除字符串开头和末尾的空格),如strip(" abcxy","xy")=" abc",strip(" abcxy","yx")=" abc" |
stripStart | 清除字符串开头指定字符 |
stripEnd | 清除字符串末尾指定的字符 |
二、common-io
简介:常用的IO流工具包
<!-- https://mvnrepository.com/artifact/commons-io/commons-io --><dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version></dependency>
我们主要关心的就是Utils后缀的那几个类即可,可以看到,common-io库提供了FileUtils,FileSystemUtils,FileNameUtils,FileFilterUtils,IOUtils
FileUtils
● 写出文件
● 读取文件
● 创建一个有父级文件夹的文件夹
● 复制文件和文件夹
● 删除文件和文件夹
● URL转文件
● 通过过滤器和扩展名来筛选文件和文件夹
● 比较文件内容
● 文件最后修改时间
● 文件校验
FileSystemUtils
关于文件系统的相关操作,如查看C盘的大小,剩余大小等操作
IOUtils
字面意思,是封装了IO流的各种操作的工具类
三、Log4j
简介:Log4J 是 Apache 的一个开源项目,通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。
我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程,方便项目的调试。
依赖:
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
结构
Log4J 主要由 Loggers (日志记录器)、Appenders(输出端)和 Layout(日志格式化器)组成。
其中Loggers 控制日志的输出级别与日志是否输出;
Appenders 指定日志的输出方式(输出到控制台、文件等);
Layout 控制日志信息的输出格式。
日志级别:
级别 | 说明 |
---|---|
OFF | 最高日志级别,关闭左右日志 |
FATAL | 将会导致应用程序退出的错误 |
ERROR | 发生错误事件,但仍不影响系统的继续运行 |
WARN | 警告,即潜在的错误情形 |
INFO | 一般和在粗粒度级别上,强调应用程序的运行全程 |
DEBUG | 一般用于细粒度级别上,对调试应用程序非常有帮助 |
ALL | 最低等级,打开所有日志记录 |
我们主要使用这四个:Error>Warn>Info>Debug
使用
我们可以使用两种方式来运行Log4j,一种是java代码方式,另外一种则是配置文件方式
例子(Java方式)
public class Log4JTest { public static void main(String[] args) { //获取Logger对象的实例(传入当前类) Logger logger = Logger.getLogger(Log4JTest.class); //使用默认的配置信息,不需要写log4j.properties BasicConfigurator.configure(); //设置日志输出级别为WARN,这将覆盖配置文件中设置的级别,只有日志级别低于WARN的日志才输出 logger.setLevel(Level.WARN); logger.debug("这是debug"); logger.info("这是info"); logger.warn("这是warn"); logger.error("这是error"); logger.fatal("这是fatal"); } }
例子(配置文件方式)
上面的例子,我们想要实现打印Log,但是每次都要写一遍,浪费时间和精力,所以,Log4j提供了另外一种方式来配置好我们的信息
创建一个名为log4j.properties的文件,此文件需要放在项目的根目录(约定),如果是maven项目,直接放在resources文件夹中即可
log4j.properties
#控制台 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #log jdbc log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=WARN log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG #log mybatis设置 #log4j.logger.org.apache.ibatis=DEBUG log4j.logger.org.apache.ibatis.jdbc=error log4j.logger.org.apache.ibatis.io=info log4j.logger.org.apache.ibatis.datasource=info #springMVC日志 log4j.logger.org.springframework.web=WARN # 文件输出配置 log4j.appender.A = org.apache.log4j.DailyRollingFileAppender log4j.appender.A.File = D:/log.txt #指定日志的输出路径 log4j.appender.A.Append = true log4j.appender.A.Threshold = DEBUG log4j.appender.A.layout = org.apache.log4j.PatternLayout #使用自定义日志格式化器 log4j.appender.A.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #指定日志的输出格式 log4j.appender.A.encoding=UTF-8 #指定日志的文件编码 #指定日志的输出级别与输出端 log4j.rootLogger=DEBUG,Console,A #指定某个包名日志级别(不能超过上面定义的级别,否则日志不会输出) log4j.logger.com.wan=DEBUG
之后使用的话就比较简单了
//Logger的初始化(这个推荐定义为全局变量,方便使用) Logger logger = Logger.getLogger(Log4JTest.class); //输出Log logger.info("这是info");
四、lombok
简介:平常我们创建实体类的时候,需要get/set方法,极其麻烦,虽然IDEA等IDE都是有提供了快捷生成,不过,最好的解决方法还是省略不写
而lombok就是这样的一个框架,实现省略get/set方法,当然,lombok的功能不只有此,还有equal,toString方法也可以由此框架自动生成
lombok的原理是使用注解,之后就会在编译过程中,给Class文件自动加上get/set等方法
不过IDEA似乎无法识别,代码检查还是会报错,所以,使用IDEA的时候还得安装一个插件,在plugin搜索lombok,之后安装重启即可,如图
之后为Java项目添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency>
使用示例
1.实体类省略get/set
估计Kotlin中的data关键字就是参照着lombok实现的
//这里我们只需要为类添加Data注解,就会自动生成对应属性的get/set方法,toString,equal等方法 @Data public class User { private String username; private String password; }
2.需要无参构造以及get/set方法
@Getter @Setter @NoArgsConstructor public class User { private String username; private String password; }
3.链式调用set方法
@Data @Accessors(chain = true) public class User { private String username; private String password; } //使用 User user = new User(); user.setUsername("helo").setPassword("123");
4.参数不为空
//如果调用此方法,就会抱一个空指针错误 public String print(@NotNull String str){ ... }
5.只需要toString
@ToString(callSuper=true, includeFieldNames=true) public class User { private String username; private String password; //省略的get/set方法 }
6.builder模式创建实体类对象
@Data @Builder public class User { private String username; private String password; } //使用 User user1 = User.builder().username("user1").password("123").build();
7.工具类
@UtilityClass public class MyUtils{ //会将此方法自动转为静态方法 public void print(String str){ ... } } //使用 MyUtils.print("hello");
8.自动关闭流
public static void main(String[] args) throws Exception { //使用Cleanup会自动调用close方法 @Cleanup InputStream in = new FileInputStream(args[0]); @Cleanup OutputStream out = new FileOutputStream(args[1]); byte[] b = new byte[1024]; while (true) { int r = in.read(b); if (r == -1) break; out.write(b, 0, r); } }
9.省略Logger时的初始化
@Log4j @Log public class User{ //会自动添加此语句 //Logger logger = Logger.getLogger(User.class); ... }
本文来自php中文网,java教程栏目,欢迎学习!
以上是Java开发中常用jar包整理及使用的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Laravel开发经验分享:提高页面加载速度的技巧随着互联网的发展,用户对网页加载速度的要求越来越高。在Laravel开发过程中,如何提高页面加载速度成为了重要的问题。本文将分享一些提高页面加载速度的技巧,帮助开发者优化网站性能。1.使用缓存技术缓存是提高网页加载速度的一种有效方式。Laravel提供了多种缓存机制,如文件缓存、数据库缓存、Redis缓存等

eclipse导入jar包的方法:1、创建一个新的Java项目;2、创建库文件夹;3、将jar包复制到库文件夹中;4、配置项目构建路径;5、添加jar包到构建路径;6、配置项目构建路径;7、验证导入结果;8、注意事项;9、其他导入方法;10、清理和更新;11、维护和更新库。详细介绍:1、创建一个新的Java项目,启动Eclipse IDE,顶部菜单栏中选择“File”菜单等等。

Git多人协作开发实践经验分享引言:在软件开发领域,多人协作是一项非常重要的工作流程,特别是对于大型项目来说。有效的多人协作能够提高开发效率,减少冲突和错误。而Git作为目前最流行的版本控制系统,为多人协作提供了强大的支持。本文将分享一些Git多人协作的实践经验,帮助开发团队更好地利用Git进行协作开发。一、分支管理使用Git进行多人协作开发时,分支管理是十

maven导入jar包的步骤:1、下载jar包;2、创建Maven项目;3、添加依赖;4、添加dependency元素;5、保存pom.xml文件;6、构建项目;7、验证导入。详细介绍:1、下载jar包,首先从相关网站或源代码仓库下载所需的jar包,确保下载的jar包与你的项目兼容,并符合所需的版本要求;2、创建Maven项目,如果还没有Maven项目,需要先创建一个等等。

标题:Maven进阶教程:深入探索Jar包导入的各种方法Maven作为Java项目管理工具,广泛应用于项目的构建、依赖管理等方面。在实际开发过程中,我们经常会用到各种第三方库的Jar包,而如何有效地导入Jar包成为了一个必须掌握的技能。本文将深入探讨Maven中导入Jar包的方法,包括使用本地Jar包、远程仓库Jar包以及自定义Jar包等多种方式,并给出具体

MySQL的Jar包使用指南及注意事项MySQL是一种常用的关系型数据库管理系统,许多Java项目都会使用MySQL作为数据存储的后端。在Java项目中,要与MySQL数据库进行交互,就需要使用MySQL提供的Java驱动程序(即Jar包)。本文将介绍MySQL的Jar包的使用指南及注意事项,并提供具体的代码示例,帮助读者更好地使用MySQL驱动程序。一、M

Maven入门指南:如何正确导入Jar包?Maven是一个强大的项目管理工具,能够帮助开发人员管理项目依赖、构建项目等。在项目开发中,我们经常需要导入外部的Jar包来实现一些功能。本文将介绍如何使用Maven来正确导入Jar包,并提供具体的代码示例。首先,我们需要在Maven的pom.xml文件中添加对所需Jar包的依赖。在pom.xml中,有一个

ThinkPHP是一个基于PHP的开源Web开发框架,被广泛应用于各类Web应用程序的开发中。在实际项目中,如何生成清晰、准确的API文档是开发过程中不可忽视的一环。本文将总结一些ThinkPHP开发经验,重点探讨如何进行API文档生成,帮助开发者提高工作效率和代码质量。一、项目目录结构在进行API文档生成之前,首先需要对项目的
