Java中常用的jar包有哪些
今天就跟大家聊聊有关Java中常用的jar包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
一、common-lang3
简介:一个现在最为常用的jar包,封装了许多常用的工具包
依赖:
<!-- 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
remove
clone复制数组addAll
removeAll第二个参数传入需要删除的下标(可以指定多个下标)toObject把数值(int[],double[])转为包装类(Int[],Double[])indexOf在数组按顺序查找,找到第一个满足对应的数值的下标lastIndexOf在数组按顺序查找,找到最后一个满足对应的数值的下标contains数组是否包含某个值isEmpty判断数组是否为空isNotEmpty判断数组是否不为空reverse数组反转subarray指定区间截取数组,区间为半开区间,不包含末尾toArray接收一个多个对象,把这几个对象转为对应类型的数组toMap将一个二维数组转为Map
2.NumberUtils
方法名
3.DateUtils
DateFormatUtils正如其名,是用来把时间转为字符串,这里就不再多说
4.StringUtils
二、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 控制日志信息的输出格式。
日志级别:
我们主要使用这四个: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.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n#log jdbclog4j.logger.java.sql.ResultSet=INFOlog4j.logger.org.apache=WARNlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG#log mybatis设置#log4j.logger.org.apache.ibatis=DEBUGlog4j.logger.org.apache.ibatis.jdbc=errorlog4j.logger.org.apache.ibatis.io=infolog4j.logger.org.apache.ibatis.datasource=info#springMVC日志log4j.logger.org.springframework.web=WARN# 文件输出配置log4j.appender.A = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A.File = D:/log.txt #指定日志的输出路径log4j.appender.A.Append = truelog4j.appender.A.Threshold = DEBUGlog4j.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);//输出Loglogger.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等方法@Datapublic class User { private String username; private String password;}
2.需要无参构造以及get/set方法
@Getter@Setter@NoArgsConstructorpublic 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@Builderpublic class User { private String username; private String password;}//使用User user1 = User.builder().username("user1").password("123").build();
7.工具类
@UtilityClasspublic 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@Logpublic class User{ //会自动添加此语句 //Logger logger = Logger.getLogger(User.class); ...}
看完上述内容,你们对Java中常用的jar包有进一步的了解吗?如果还想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。