我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

一、common-lang3

简介:一个现在最为常用的jar包,封装了许多常用的工具包

(推荐视频:java视频教程)

依赖:



    org.apache.commons
    commons-lang3
    3.4

主要常见的类如下:

数组工具类 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流工具包


    commons-io
    commons-io
    2.6

我们主要关心的就是Utils后缀的那几个类即可,可以看到,common-io库提供了FileUtils,FileSystemUtils,FileNameUtils,FileFilterUtils,IOUtils

FileUtils

● 写出文件

● 读取文件

● 创建一个有父级文件夹的文件夹

● 复制文件和文件夹

● 删除文件和文件夹

● URL转文件

● 通过过滤器和扩展名来筛选文件和文件夹

● 比较文件内容

● 文件最后修改时间

● 文件校验

FileSystemUtils

关于文件系统的相关操作,如查看C盘的大小,剩余大小等操作

IOUtils

字面意思,是封装了IO流的各种操作的工具类

三、Log4j

简介:Log4J 是 Apache 的一个开源项目,通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。

我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程,方便项目的调试。

依赖:


    log4j
    log4j
    1.2.17

结构

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项目添加依赖



    org.projectlombok
    lombok
    1.18.8
    provided

使用示例

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);
    ...
}

本文来自编程界网,java教程栏目,欢迎学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

本文整理了我自己在Java开发中常用的jar包以及常用的API记录。一、common-lang3简介:一个现在最为常用的jar包,封装了许多常用的工具包(推荐视频:java视频教程) 依赖: org.apache.commons commons-
Java开发中常用jar包整理及使用
2015-06-08

java基础中异常及包归纳整理

1 异常异常的体系 ThrowableError通常出现重大问题如:运行的类不存在或者内存溢出等。不编写针对代码对其处理Exception在运行时运行出现的一起情况,可以通过try catch finallyException和Error的
2023-05-31

Java开发时常用的相关Linux命令整理

这篇文章主要讲解了“Java开发时常用的相关Linux命令整理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java开发时常用的相关Linux命令整理”吧!1.查找文件代码如下:find /
2023-06-12

java中使用jar包乱码解决方法

java使用jar包乱码解决方法:1、修改Eclipse中文本文件的默认编码:windows->Preferences->general->Workspace->Text file encoding设置为UTF-8。修改JAVA源文件的默认编码:windows
java中使用jar包乱码解决方法
2021-06-03

java 中使用maven shade plugin 打可执行Jar包

java 中使用maven shade plugin 打可执行Jar包eclipse里有一个功能叫做“打可执行(runnable) jar包”, 用这个功能可以把一个工程自身和所有依赖包打成一个fat jar,并且指定Main方法,这样直接
2023-05-31

java中最常用jar包的用途说明,适合初学者

在Java开发中,有很多常用的JAR包(Java Archive),这些JAR包是预编译的Java类、资源和元数据的集合,它们能够提供各种功能和扩展,使得开发更加便捷和高效。以下是一些常用的JAR包及其用途的说明:1. Apache Com
2023-09-05

Android应用开发中WebView的常用方法笔记整理

基本使用 使用WebView通常是需要网络的,所以需要加上访问网络的权限1.加载某个url的方法WebView.lo
2022-06-06

Java开发中常用记录

这篇文章主要介绍了Java-编程式事务、Java-Stream、Linux常用命令,需要的朋友可以参考下
2023-05-19

android开发中常用的Eclipse快捷键详细整理

Eclipse快捷键-方便查找,呵呵,记性不好 行注释/销注释 Ctrl+/ 块注释/销注释/XML注释 Ctrl+Shift+/ Ctrl+Shift+\ 查找 查找替换 Ctrl+H Ctrl+F 查找下一个/往回找 Ctrl+K Ct
2022-06-06

MySQL整理在数据库开发中的应用

MySQL是一种广泛使用的关系型数据库管理系统,其灵活性和高效性使之在数据库开发中扮演着重要角色。本文将介绍MySQL在数据库开发中的应用,并提供一些具体的代码示例。一、数据库连接在数据库开发中,首先需要建立与MySQL数据库的连接。以
MySQL整理在数据库开发中的应用
2024-03-02

JAVA中怎么使用QT开发GUI

在Java中,您可以使用JavaFX或Swing来开发GUI应用程序,而不是使用QT。JavaFX是一个现代化的GUI工具包,用于构建富客户端应用程序,而Swing是一个老式的GUI工具包,但仍然被广泛使用。然而,如果您希望使用QT来开发G
2023-09-22

Java开发中常用的Websocket技术有哪些

本篇内容介绍了“Java开发中常用的Websocket技术有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1. 前言Websocket
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录