[java基础] Java开发中常用jar包整理及使用

刺猬 · 发布于 2019-11-26 03:50 · 344 次阅读
268
本文整理了我自己在Java开发中常用的jar包以及常用的API记录。
                    org.apache.commons            commons-lang3            3.8                                    commons-io            commons-io            2.6                                    org.projectlombok            lombok            1.18.8            provided                            log4j            log4j            1.2.17        
common-lang3

简介

一个现在最为常用的jar包,封装了许多常用的工具包
在线API
依赖:
    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
方法名说明addremoveclone复制数组addAllremoveAll第二个参数传入需要删除的下标(可以指定多个下标)toObject把数值(int[],double[])转为包装类(Int[],Double[])indexOf在数组按顺序查找,找到第一个满足对应的数值的下标lastIndexOf在数组按顺序查找,找到最后一个满足对应的数值的下标contains数组是否包含某个值isEmpty判断数组是否为空isNotEmpty判断数组是否不为空reverse数组反转subarray指定区间截取数组,区间为半开区间,不包含末尾toArray接收一个多个对象,把这几个对象转为对应类型的数组toMap将一个二维数组转为Map2.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,""," "这三个结果都是为trueisEmpty判断字符串是否为空(只要不为null,或传入的String对象的长度不为0即为true)countMatches判断指定的字符串在某个字符串中出现的次数deleteWhitespace删除字符串中的空格defaultIfBlank如果字符串为空白,则返回一个指定的默认值(null或某个String)defaultIfEmpty如果字符串为空,则返回一个指定的默认值(null或某个String)capitalize将指定字符串首字母大写abbreviate将指定字符串的后面三位转为...swapCase将字符串中的字母大小写反转,如aBc变为AbClowerCase将字符串的字母全部转为小写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流工具包
在线API
    commons-io    commons-io    2.6
API

我们主要关心的就是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.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");
参考链接:Log4j入门教程
lombok

简介

平常我们创建实体类的时候,需要get/set方法,极其麻烦,虽然IDEA等IDE都是有提供了快捷生成,不过,最好的解决方法还是省略不写
而lombok就是这样的一个框架,实现省略get/set方法,当然,lombok的功能不只有此,还有equal,toString方法也可以由此框架自动生成
lombok的原理是使用注解,之后就会在编译过程中,给Class文件自动加上get/set等方法
不过IDEA似乎无法识别,代码检查还是会报错,所以,使用IDEA的时候还得安装一个插件,在plugin搜索lombok,之后安装重启即可,如图

之后为Java项目添加依赖
    org.projectlombok    lombok    1.18.8    provided
使用示例

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);    ...}
参考:
Lombok介绍、使用方法和总结
Lombok的使用详解

来源:https://www.cnblogs.com/kexing/archive/2019/11/25/11930390.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
共收到 0 条回复
暂无回复。
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表