JAVA常用工具大全
一、commons-lang3
引入依赖
StringUtils 字符串工具类
StringEscapeUtils 转义字符串工具类
NumberUtils 数字工具类
ArrayUtils 数组工具类
RandomUtils 随机数工具类
RandomStringUtils 随机字符串工具类
DateUtils 日期工具类
DateFormatUtils时间格式化
DurationFormatUtils时间段格式化
StopWatch 秒表
EnumUtils 枚举工具类
反射工具类
ClassUtils 类工具
MethodUtils
FieldUtils
ConstructorUtils
ObjectUtils 对象工具类
SystemUtils 系统属性工具类
SerializationUtils 序列化工具类
LocaleUtils 本地工具类
二、commons-collecions4
引入依赖
CollectionUtils 集合工具类
ListUtils-List工具类
SetUtils-Set集合工具类
MapUtils-Map工具类
三、commons-beanutils
引入依赖
BeanUtils/BeanUtilsBean
PropertyUtils类
四、commons-io
引入依赖
FileUtils 文件操作工具类
IOUtils 流操作工具类
FilenameUtils 文件名工具类
其他工具类
提示:以下是本篇文章正文内容,下面案例可供参考
一、commons-lang3
引入依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
StringUtils 字符串工具类
包含判断方法:contains/containsXXX
字符串替换方法:replace/replaceXXX
获取子串:substring/substringXXX
判断方法:
1、isEmpty/isNotEmpty/isBlank/isNotBlank/isNumeric/isWhitespace
2、sartsWith/startsWithAny/endsWith/endsWithIgnoreCase
索引(index):indexOf/indexOfXXX/tIndexOf/lastIndexOfXXX
处理方法:
abbreviate 缩短 capitalise 首字母 repeat 重复 left/right/center 左右中间
removeXXX 移除 trimXXX 去空 reverseXXX 翻转 stripXXX 移除
defaultXXX 默认 lowerCase/upperCase deleteXXX 删除处理
splitXXX分解处理 join 拼接
StringEscapeUtils 转义字符串工具类
StringEscapeUtils类可以对html js xml sql 等代码进行转义来防止SQL注入
escapeCsv/unescapeCsv/escapeHtml/unescapeHtml/escapeJava/unescapeJava
escapeJavaScript/unescapeJavaScript/escapeXml/unescapeXml/escapeSql
NumberUtils 数字工具类
创建数字:createXXX 创建Integer,Float,Double,Number,BigDecimal,BigInteger等数字
字符转数字:toXXX 字符串转数字:Byte,Double,Float,Int,Long,Short
判断是否数字:isDigits/isNumber
其他方法:compare,max,min,
/1.NumberUtils.isNumber():判断字符串是否是数字/
NumberUtils.isNumber("5.96");//结果是true
NumberUtils.isNumber("s5");//结果是false
/2.NumberUtils.isDigits():判断字符串中是否全为数字/
NumberUtils.isDigits("0000000000.596");//false
/3.NumberUtils.toInt():字符串转换为整数/
NumberUtils.toInt("5");
NumberUtils.toLong("5");
NumberUtils.toByte("3");
NumberUtils.toFloat("3.2");
NumberUtils.toDouble("4");
NumberUtils.toShort("3");
/4.NumberUtils.max():找出最大的一个/
NumberUtils.max(newint[]{3,5,6});//结果是6
NumberUtils.max(3,1,7);//结果是7
/5.NumberUtils.min():找出最小的一个/
NumberUtils.min(newint[]{3,5,6});//结果是6
NumberUtils.min(3,1,7);//结果是7
/6.NumberUtils.createBigDecimal()通过字符串创建BigDecimal类型,支持long、int、float、double、number等数值/
NumberUtils.createBigDecimal("1");
NumberUtils.createLong("1");
NumberUtils.createInteger("1");
ArrayUtils 数组工具类
添加移除:add,addAll,remove,removeElement,
拷贝:clone
判断:contains,isEmpty,isNotEmpty,isEquals,isSameLength,
其他:getLength,indexOf,lastIndexOf,nullToEmpty,reverse,subArray,
转换:toMap,toObject,toPrimitive,toString
/1.ArrayUtils.isEmpty(strs):判断数组是否为空, 不为空返回false, 为空true/
ArrayUtils.isEmpty(new String[]{"21","是"});//结果是false
ArrayUtils.isEmpty(new String[]{""});//结果是false
ArrayUtils.isEmpty(new String[]{null});//结果是false
ArrayUtils.isEmpty(new String[]{});//结果是true
/2.ArrayUtils.isNotEmpty(strs):判断数组是否不为空,不为空返回true,为空false/
ArrayUtils.isNotEmpty(new String[]{"21","是"});//结果是true
ArrayUtils.isNotEmpty(new String[]{""});//结果是true
ArrayUtils.isNotEmpty(new String[]{});//结果是false
/3.ArrayUtils.isSameLength(strs,strs2):判断两个数组长度是否相等,长度相等返回true,否则返回false。相比较的两个 数组类型必须相同/
ArrayUtils.isSameLength(new String[]{"21","是"},new String[]{"21","是"});//返回false
/4.ArrayUtils.isSameType(strs,strs2):判断两个数组的类型是否相同,相同返回true,否则返回false/
ArrayUtils.isSameType(new String[]{"21","是"},newInteger[]{3});
/5.ArrayUtils.isEquals(strs,strs2)判断两个数组是否相等/
ArrayUtils.isEquals(strs,strs);//结果是true
/6.ArrayUtils.toString()将一个数组转换成String,用于打印/
ArrayUtils.toString(new String[]{"21","是"});//结果是:{21,是}
/7.ArrayUtils.clone赋值(克隆)数组/
Object[]s=ArrayUtils.clone(newObject[]{"33","yy"});
/8.ArrayUtils.subarray截取子数组:根据起始索引startIndexInclusive到结束索引startIndexInclusive/
Object[]s1=ArrayUtils.subarray(newObject[]{"33","yy","uu"},0,1);//结果是返回数组:[33]
Object[]s2=ArrayUtils.subarray(newObject[]{"33","yy","uu"},0,2);//结果是返回数组:[33,yy]
/9.ArrayUtils.indexOf查询某个object在数组中的位置,可是指定起始搜索位置/
intindex=ArrayUtils.indexOf(newObject[]{"33","yy","uu"},"uu");//结果是2
intindex1=ArrayUtils.indexOf(newObject[]{"33","yy","uu"},"uu",2);//结果是2
intindex3=ArrayUtils.indexOf(newObject[]{"33","yy","uu"},"uu",3);//结果是-1
/10.ArrayUtils.lastIndexOf反向查询某个object在数组中的位置,可以指定起始搜索位置/
intindex11=ArrayUtils.lastIndexOf(newObject[]{"33","yy","uu"},"33");//结果是0
intindex22=ArrayUtils.lastIndexOf(newObject[]{"33","yy","uu"},"33",2);
/11.ArrayUtils.contains查询某个object是否在数组中/
ArrayUtils.contains(new String[]{"1", "2", "3"}, "11");
/12.ArrayUtils.reverse反转数组/
ArrayUtils.reverse(new String[]{"22","yy"});//结果是:{"yy","22"}
/13.ArrayUtils.add添加一object到数组/
String[] t={"22","yy"};
String[] gg=(String[])ArrayUtils.add(t,"jj");//{"22","yy","jj"}
/14.ArrayUtils.addAll合并两个数组/
String[]ggo=(String[])ArrayUtils.addAll(new String[]{"22","yy"},new String[]{"jj"});//结果是:[22,yy,jj]
ArrayUtils.addAll(new String[]{"22","yy"},new String[]{"jj", "jj"}); //结果是:[22,yy,jj,jj]
/15.ArrayUtils.remove删除数组某个位置的元素/
String[]gg4=(String[])ArrayUtils.remove(new String[]{"22","yy"},1);
/16.ArrayUtils.removeElement删除数组中某个对象/
String[]ggpp=(String[])ArrayUtils.removeElement(new String[]{"22","yy"},"yy");
RandomUtils 随机数工具类
nextBoolean/nextInt/nextLong/nextFloat/nextDouble
例:RandomUtils.nextInt(1000);
// 注意这里传入的参数不是随机种子,而是在0~1000之间产生一位随机数
RandomStringUtils 随机字符串工具类
random/randomNumeric/randomAlphabetic/randomAscii
DateUtils 日期工具类
说明:XXX表示milisecends,seconds,minutes,hours,days,weeks,months,years
时间加减:add/addXXX
时间设置:setXXX
获取片段:getFragmentInXXX 获取date的1月1日0点0分0秒到指定时间的片段值
判断: isSameDay/isSameInstant/isSameLocalTime
转换: parseDate/parseDateStrictly
取模: ceiling/round/truncate
时间段:iterator 注意rangeStyle=1到4表示周范围以及偏移,5和6表示月偏移
DateFormatUtils时间格式化
格式化:format/formatUTC
DurationFormatUtils时间段格式化
formatDuration/formatDurationHMS/formatDurationISO
formatPeriod/formatPeriodISO
formatDurationWords
StopWatch 秒表
start/stop/suspend/split/resume/reset/unsplit
getSplitTime/getStartTime/getTime/
toSplitString/toString
EnumUtils 枚举工具类
getEnum/getEnumIgnoreCase/getEnumList/getEnumMapiterator
反射工具类
ClassUtils 类工具
获取:
1、类和接口 :getClass/getAllInterfaces/getAllSuperclasses/getShortClassName
2、包:getPackageName/getPackageCanonicalName
3、方法:getPublicMethod
转换:
1、toClass/convertClassesToClassNames/convertClassNamesToClasses/
2、primitivesToWrappers/primitiveToWrapper/wrappersToPrimitives/wrapperToPrimitive
判断:isAssignable/isInnerClass
MethodUtils
getAccessibleMethod/getMatchingAccessibleMethod
invokeMethod/invokeStaticMethod/invokeExactMethod/invokeExactStaticMethod
FieldUtils
getField/readField/writeField
getDeclaredField/readDeclaredField/writeDeclaredField
readDeclaredStaticField/readStaticField/writeDeclaredStaticField/writeStaticField
ConstructorUtils
getAccessibleConstructor/getMatchingAccessibleConstructor
invokeConstructor/invokeExactConstructor
ObjectUtils 对象工具类
max/min/toString/identityToString/appendIdentityToString/defaultIfNull
SystemUtils 系统属性工具类
getJavaHome/getJavaIoTmpDir/getJavaVersion/getUserDir/getUserHome/
isJavaAwtHeadless/isJavaVersionAtLeast
SerializationUtils 序列化工具类
clone/deserialize/serialize
LocaleUtils 本地工具类
availableLocaleList/availableLocaleSet
countriesByLanguage
localeLookupList/toLocale/isAvailableLocale/languagesByCountry
二、commons-collecions4
引入依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
CollectionUtils 集合工具类
添加/删除:addAll/addIgnoreNull/retainAll/removeAll/
获取:
find/get/containsAny/index/size/sizeIsEmpty/select/selectRejected/subtract
typedCollection
判断:
isEmpty/isNotEmpty/isFull/exists/isEqualCollection/
isSubCollection/isProperSubCollection
转换:
collect/transform/transformedCollection/predicatedCollection
unmodifiableCollection/synchronizedCollection
计算:cardinality/countMatches/maxSize
过滤:filter
集合:intersection/union/disjunction 交集,并集,差集
其他操作:
reverseArray 翻转 forAllDo 给每个元素执行闭包
getCardinalityMap 转成Map,key是元素,value是次数
ListUtils-List工具类
判断: isEqualList
集合:intersection/sum/union/retainAll 交集,并集,合集,差集
操作:removeAll/hashCodeForList
子集: typedList/subtract/fixedSizeList
转换处理:synchronizedList/unmodifiableList/predicatedList/transformedList/lazyList
SetUtils-Set集合工具类
判断:isEqualSet
转换处理:
transformedSet/transformedSortedSet/predicatedSet/predicatedSortedSet
unmodifiableSet/synchronizedSet/synchronizedSortedSet
orderedSet/typedSet/typedSortedSet
操作:hashCodeForSet
MapUtils-Map工具类
获取:getObject/getString/getXXX/getXXXValue 获取指定类型值,getXXXValue 如果没有值则默认值
子集:fixedSizeMap/fixedSizeSortedMap/typedMap/typedSortedMap
判断:isEmpty/isNotEmpty
转换:
predicatedMap/predicatedSortedMap/transformedMap/transformedSortedMap/
synchronizedMap/synchronizedSortedMap/
unmodifiableMap/unmodifiableSortedMap/multiValueMap/orderedMap
toMap/toProperties/lazyMap/lazySortedMap
添加移除:safeAddToMap/putAll
其他操作:invertMap/debugPrint/verbosePrint
三、commons-beanutils
引入依赖
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
BeanUtils/BeanUtilsBean类
拷贝: cloneBean/copyProperties/copyProperty
获取:getArrayProperty/getSimpleProperty/getProperty
其他操作:setProperty设置属性 populate将Bean设置到Map中 describe将Bean转成Map
PropertyUtils类
判断:isReadable/isWriteable
获取:
getProperty/getSimpleProperty/getPropertyType
getReadMethod/getWriteMethod/getIndexedProperty/setIndexedProperty
getMappedProperty/setMappedProperty/getNestedProperty/setNestedProperty
getPropertyDescriptor/getPropertyEditorClass
拷贝和设置:copyProperties/setProperty/setSimpleProperty /clearDescriptors
四、commons-io
引入依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
FileUtils 文件操作工具类
文件夹操作:
copyDirectory/deleteDirectory/cleanDirectory/getTempDirectory/getTempDirectoryPath
moveDirectory/moveDirectoryToDirectory/moveFileToDirectory/moveToDirectory
forceMkdir/getUserDirectory/getUserDirectoryPath
文件操作:
touch/copyFile/copyURLToFile/moveFile/deleteQuietly/forceDelete/forceDeleteOnExit
toFile/toFiles/toURLs
isFileNewer/isFileOlder
readLines/readFileToByteArray/readFileToString/lineIterator/openOutputStream
write/writeLines/writeByteArrayToFile/writeStringToFile/openInputStream
其他操作:
iterateFiles/listFiles/contentEquals/sizeOf/sizeOfDirectory
IOUtils 流操作工具类
读操作:lineIterator/read/readLines
写操作:write/writeLines
转换: toInputStream/toBufferedInputStream/toByteArray/toCharArray/toString
其他操作:copy/copyLarge/contentEquals/skip/skipFully/closeQuietly
FilenameUtils 文件名工具类
获取:
getName/getBaseName/getPrefix/getPrefixLength/getExtension
getPath/getFullPath/getFullPathNoEndSeparator/getPathNoEndSeparator
判断:
isExtension/equals/equalsNormalized/equalsOnSystem
其他操作:
removeExtension/indexOfExtension
separatorsToSystem/separatorsToUnix/separatorsToWindows
indexOfLastSeparator
其他工具类
文件比较器:
CompositeFileComparator/DefaultFileComparator/DirectoryFileComparator
ExtensionFileComparator/LastModifiedFileComparator/NameFileComparator
PathFileComparator/PathFileComparator
文件过滤器:
AgeFileFilter/AndFileFilter/CanReadFileFilter/CanWriteFileFilter
DelegateFileFilter/DirectoryFileFilter/EmptyFileFilter/FalseFileFilter/FileFileFilter
FileFilterUtils/HiddenFileFilter/MagicNumberFileFilter/NameFileFilter/NotFileFilter
OrFileFilter/PrefixFileFilter/RegexFileFilter/SizeFileFilter/SuffixFileFilter
TrueFileFilter/WildcardFileFilter/WildcardFilter
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
本文整理了我自己在Java开发中常用的jar包以及常用的API记录。 复制<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.8</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> common-lang3 简介 一个现在最为常用的jar包,封装了许多常用的工具包 在线API 依赖: 复制<!-- 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 方法名 说明 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流工具包 在线API 复制<!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> API 我们主要关心的就是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 控制日志信息的输出格式。 日志级别: 级别 说明 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"); 参考链接:Log4j入门教程 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); ... }
标签:JAVA,String,NumberUtils,字符串,ArrayUtils,工具,log4j,大全 From: https://www.cnblogs.com/chenTo/p/17977732