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

一、common-lang3

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

依赖:

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

之后为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);

...

}

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

java开发常用jar包_Java开发中常用jar包整理及使用相关推荐

  1. java异常类型 数组越界_java数组中的异常类型整理

    对于程序中出现异常,是很多程序员不想看到的情况,因为这就需要我们去查询异常的原因,然后进行一些处理异常的操作.在Java数组操作时,也会有一些异常情况的发生.这里我们罗列出了两种:ClassCastE ...

  2. java 引用 jar包_java命令行引用jar包的方法

    java命令行引用jar包的方法 java命令行怎么引用jar包?jar包有哪些常用方法?下面跟yjbys小编一起来学习一下,希望对大家学习java语言有帮助! 一般情况下: 如果java 文件和ja ...

  3. java开发常用jar包_java开发常用jar包

    mail.jar与activation.jar 里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的 commons-beanutils.ja ...

  4. java运行 mavenzip包_JAVA开发必知工具-Maven-Maven生成可以直接运行的jar包的多种方式...

    大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIF ...

  5. java应用开发常用的中间件_Java开发常用的一些软件工具和插件以及开发中间件...

    总结一下自己在java开发中常用的一些软件工具,插件,容器,中间件等. 常用软件及插件 一.intellij idea(及好用的集成插件): 1.iBATIS/MyBatis mini-plugin: ...

  6. JAVA计时函数的库_JAVA开发常用类库UUID、Optional、ThreadLocal、TimerTask、Base64使用方法与实例详解...

    1.UUID类库 UUID 根据时间戳实现自动无重复字符串定义 // 获取UUID public static UUID randomUUID() // 根据字符串获取UUID public stat ...

  7. java刚工作搭建环境_Java开发环境的搭建

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK 点击下载好的exe文件安装即可. 2.接下来我们需要配置环境变量 xp系统下  右键'我的电脑' ...

  8. java的环境变量设置_Java开发环境不再需要配置classpath

    前言: 之前发布了关于java开发环境配置的文章,经过与网友的交流,我了解到在jdk1.5以后,java开发环境配置的时候,确实不需要对classpath进行配置,查阅了一些资料以及与别人的交流,今天 ...

  9. java开发规范文档_Java开发规范

    随着<阿里巴巴Java开发手册>的公开,重新又掀起一股编码规范的风口.结合<华为java编程规范>以及团队内部的实践,我们也做了一段开发规范.不求最全,但求有效. 里面的规范, ...

最新文章

  1. WSAGetLastError返回的可能错误代码
  2. 产品诞生过程--导图
  3. 【奥运代表团加油】ABAP字符处理杂例
  4. JavaScript学习备忘
  5. 5大过程组与整体管理
  6. linux gnome启动命令,如何在Gnome Shell上自动启动程序
  7. 2020国内互联网公司的开源项目及Github地址部分汇总
  8. Fiddler在PC/台式对Android进行抓包
  9. Guava、Spring 如何抽象观察者模式?
  10. 黑龙江2021年高考成绩查询分数,2021年黑龙江高考成绩什么时候公布
  11. 1月20日到期的5.2万美元比特币期权数量超1万份
  12. Linux下Apache与Tomcat整合调试
  13. XBug:一个强大的JavaScript调试器
  14. 从壹开始前后端分离 [ vue + .netcore 补充教程 ] 三十║ Nuxt实战:动态路由+同构...
  15. Linux下安装PHP扩展
  16. 用华为eNSP仿真校园网
  17. 这可能是 Python 里最强的绘制地图神器
  18. Unity SetFromToRotation和FromToRotation的区别
  19. mysql count sending data_深入分析MySQL Sending data查询慢问题
  20. 2021ICPC网络赛第一场【A Busiest Computing Nodes】【D Edge of Taixuan】

热门文章

  1. 实现一个简单的模板引擎,输入模板和数据,输出html
  2. React学习:ref调用、组件封装调用-学习笔记
  3. Vue学习(vuex)-学习笔记
  4. 基础练习 01字串 c语言
  5. 使用Socket及ServerSocket创建简单的服务器
  6. hadoop关键进程
  7. Scala入门到精通——第十九节 隐式转换与隐式参数(二)
  8. 设计模式的概念和分类
  9. javaweb学习总结(三十九):数据库连接池
  10. 手写call,apply和bind(分析三者的用法与区别)