本文整理了我自己在Java開發中常用的jar套件以及常用的API記錄。
一、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介紹#API介紹
#白版介紹
##這裡我只介紹常使用的幾個工具類別及方法,ArrayUtils,StringUtils,NumberUtils,DateUtils,其他的請查看官方API文件吧
1.ArrayUtils方法名稱 | |
---|---|
add | |
#remove | |
#clone | |
addAll | |
#removeAll | |
toObject | |
indexOf | |
lastIndexOf | |
#contains | ##陣列是否包含某個值|
isEmpty | 判斷陣列是否為空 |
#isNotEmpty | 判斷陣列是否不為空 |
#reverse | 陣列反轉 |
#subarray | #指定區間截取數組,區間為半開區間,不包含結尾 |
toArray | 接收一個多個對象,把這幾個物件轉為對應類型的陣列 |
##toMap | 將一個二維陣列轉為Map |
#2.NumberUtils
##方法名稱 | 說明|
---|---|
比較三個數,傳回最小值或比較指定的幾個數,傳回最小值 | |
#比較三個數,傳回最大值或比較指定的幾個數,傳回最大值 | |
從傳入的String中建立對應類型的數值,createDouble,createFloat... | |
將指定字串轉為Int類型,可以選擇指定預設數值,如果字串為null則傳回預設數值,除此之外,還有toDouble,toLong...等轉為不同型別的方法 | |
比較兩個同型別數值的大小 | |
判斷字串是否只包含數字 | |
判斷字串是否可轉換為Long,Int等型別 | |
判斷字串是否為數值(0x,0X開頭等進位數值) |
3.DateUtils
說明 | |
---|---|
#將Date物件轉為字串 | |
判斷兩個Dated物件是否為同一天 | |
#判斷兩個Dated物件是否為同一天 | |
將指定的Date物件加上指定小時,除此之外,還有addMonth,addDay..等等 |
方法名稱 | 說明 |
---|---|
#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("hello","l")="heo" | |
刪除字串中的指定內容,如remove( "hello","l")="heo" | |
#清除字串開頭和結尾指定的字元(第二個參數為null,用來清除字串開頭與結尾的空格),如strip(" abcxy","xy")=" abc",strip(" abcxy","yx")=" abc" | |
清除字串開頭指定字元 | |
清除字串末端指定的字元 |
级别 | 说明 |
---|---|
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项目添加依赖
<!-- 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中文網其他相關文章!