首页 Java java教程 Java开发中常用jar包整理及使用

Java开发中常用jar包整理及使用

Nov 29, 2019 pm 01:16 PM
jar包 开发经验

本文整理了我自己在Java开发中常用的jar包以及常用的API记录。

Java开发中常用jar包整理及使用

一、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,之后安装重启即可,如图

1.jpg

之后为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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1668
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
Laravel开发经验分享:提高页面加载速度的技巧 Laravel开发经验分享:提高页面加载速度的技巧 Nov 22, 2023 pm 04:33 PM

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

eclipse如何导入jar包 eclipse如何导入jar包 Jan 12, 2024 pm 03:45 PM

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

Git多人协作开发实践经验分享 Git多人协作开发实践经验分享 Nov 03, 2023 am 08:53 AM

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

maven怎么导入jar包 maven怎么导入jar包 Jan 08, 2024 pm 01:59 PM

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

Maven进阶教程:深入探索Jar包导入的各种方法 Maven进阶教程:深入探索Jar包导入的各种方法 Feb 23, 2024 pm 02:57 PM

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

MySQL的Jar包使用指南及注意事项 MySQL的Jar包使用指南及注意事项 Mar 01, 2024 pm 04:21 PM

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

指导如何正确导入Jar包至Maven项目 指导如何正确导入Jar包至Maven项目 Feb 19, 2024 pm 12:00 PM

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

ThinkPHP开发经验总结:如何进行API文档生成 ThinkPHP开发经验总结:如何进行API文档生成 Nov 22, 2023 pm 06:33 PM

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

See all articles