来源:/post/7043403364020781064*

断言

  1. 断言是一个逻辑判断,用于检查不应该发生的情况
  2. Assert 关键字在 JDK1.4 中引入,可通过 JV索引符号M 参数-enableassertions开启java面试题
  3. SpringBoot 中提供了 Asser索引失效的几种情况和解决t 断言工具类,通常用于数据合法性检查
//要求参数object必须为非空(NotNull),否则抛出异常,不予放行
//参数 message 参数用于定制异常信息。
voidnotNull(Objectobject,Stringmessage)
//要求参数必须空(Null),否则抛出异常,不予『放行』。
//和notNull()方法断言规则相反
voidisNull(Objectobject,Stringmessage)
//要求参数必须为真(True),否则抛出异常,不予『放行』。
voidisTrue(booleanexpression,Stringmessage)
//要求参数(List/Set)必须非空(NotEmpty),否则抛出异常,不予放行
voidnotEmpty(Collectioncollection,Stringmessage)
//要求参数(String)必须有长度(即,NotEmpty),否则抛出异常,不予放行
voidhasLength(Stringtext,Stringmessage)
//要求参数(String)必须有内容(即,NotBlank),否则抛出异常,不予放行
voidhasText(Stringtext,Stringmessage)
//要求参数是指定类型的实例,否则抛出异常,不予放行
voidisInstanceOf(Classtype,Objectobj,Stringmessage)
//要求参数`subType`必须是参数superType的子类或实现类,否则抛出异常,不予放行
voidisAssignable(ClasssuperType,ClasssubType,Stringmessage)

对象、数组、集合

ObjectUtils

  1. 获取对象的基本信息
//获取对象的类名。参数为 null 时,返回字符串:"null"
StringnullSafeClassName(Objectobj)
//参数为null时,返回0
intnullSafeHashCode(Objectobject)
//参数为 null 时,返回字符串:"null"
StringnullSafeToString(boolean[]array)
//获取对象 HashCode(十六进制形式字符串)。参数为 null 时,返回0
StringgetIdentityHexString(Objectobj)
//获取对象的类名和 HashCode。参数为 null 时,返回字符串:""
StringidentityToString(Objectobj)
//相当于 toString()方法,但参数为 null 时,返回字符串:""
StringgetDisplayString(Objectobj)
  1. 判断工具
//判断数组是否为空
booleanisEmpty(Object[]array)
//判断参数对象是否是数组
booleanisArray(Objectobj)
//判断数组中是否包含指定元素
booleancontainsElement(Object[]array,Objectelement)
//相等,或同为null时,返回true
booleannullSafeEquals(Objecto1,Objecto2)
/*
判断参数对象是否为空,判断标准为:
Optional:Optional.empty()
Array:length==0
CharSequence:length==0
Collection:Collection.isEmpty()
Map:Map.isEmpty()
*/
booleanisEmpty(Objectobj)
  1. 其他工具方法
//向参数数组的末尾追加新元素,并返回一个新数组
<A,OextendsA>A[]addObjectToArray(A[]array,Oobj)
//原生基础类型数组-->包装类数组
Object[]toObjectArray(Objectsource)

Stjavascriptrinspringboot面试题gUtils

  1. 字符串索引颜色模式包含多少种颜色判断工具
//判断字符串是否为 null,或""。注意,包含空白符的字符串为非空
booleanisEmpty(Objectstr)
//判断字符串是否是以指定内容结束。忽略大小写
booleanendsWithIgnoreCase(Stringstr,Stringsuffix)
//判断字符串是否已指定内容开头。忽略大小写
booleanstartsWithIgnoreCase(Stringstr,Stringprefix)
//是否包含空白符
booleancontainsWhitespace(Stringstr)
//判断字符串非空且长度不为0,即,NotEmpty
booleanhasLength(CharSequencestr)
//判断字符串是否包含实际内容,即非仅包含空白符,也就是NotBlank
booleanhasText(CharSequencestr)
//判断字符串指定索引处是否包含一个子串。
booleansubstringMatch(CharSequencestr,intindex,CharSequencesubstring)
//计算一个字符串中指定子串的出现次数
intcountOccurrencesOf(Stringstr,Stringsub)
  1. 字符串操作Element工具
//查找并替换指定子串
Stringreplace(StringinString,StringoldPattern,StringnewPattern)
//去除尾部的特定字符
StringtrimTrailingCharacter(Stringstr,chartrailingCharacter)
//去除头部的特定字符
StringtrimLeadingCharacter(Stringstr,charleadingCharacter)
//去除头部的空白符
StringtrimLeadingWhitespace(Stringstr)
//去除头部的空白符
StringtrimTrailingWhitespace(Stringstr)
//去除头部和尾部的空白符
StringtrimWhitespace(Stringstr)
//删除开头、结尾和中间的空白符
StringtrimAllWhitespace(Stringstr)
//删除指定子串
Stringdelete(StringinString,Stringpattern)
//删除指定字符(可以是多个)
StringdeleteAny(StringinString,StringcharsToDelete)
//对数组的每一项执行trim()方法
String[]trimArrayElements(String[]array)
//将URL字符串进行解码
StringuriDecode(Stringsource,Charsetcharset)
  1. 路径相关工具方法
//解析路径字符串,优化其中的“..”
StringcleanPath(Stringpath)
//解析路径字符串,解析出文件名部分
StringgetFilename(Stringpath)
//解析路径字符串,解析出文件后缀名
StringgetFilenameExtension(Stringpath)
//比较两个两个字符串,判断是否是同一个路径。会自动处理路径中的“..”
booleanpathEquals(Stringpath1,Stringpath2)
//删除文件路径名中的后缀部分
StringstripFilenameExtension(Stringpath)
//以“.作为分隔符,获取其最后一部分
Stringunqualify(StringqualifiedName)
//以指定字符作为分隔符,获取其最后一部分
Stringunqualify(StringqualifiedName,charseparator)

Coelement是什么意思llectionUtils

  1. 集合判断工具
//判断List/Set是否为空
booleanisEmpty(Collection<?>collection)
//判断Map是否为空
booleanisEmpty(Map<?,?>map)
//判断List/Set中是否包含某个对象
booleancontainsInstance(Collection<?>collection,Objectelement)
//以迭代器的方式,判断List/Set中是否包含某个对象
booleancontains(Iterator<?>iterator,Objectelement)
//判断List/Set是否包含某些对象中的任意一个
booleancontainsAny(Collection<?>source,Collection<?>candidates)
//判断 List/Set 中的每个元素是否唯一。即 List/Set 中不存在重复元素
booleanhasUniqueObject(Collection<?>collection)
  1. 集合操作工具
//将Array中的元素都添加到List/Set中
<E>voidmergeArrayIntoCollection(Objectarray,Collection<E>collection)
//将Properties中的键值对都添加到Map中
<K,V>voidmergePropertiesIntoMap(Propertiesprops,Map<K,V>map)
//返回List中最后一个元素
<T>TlastElement(List<T>list)
//返回Set中最后一个元素
<T>TlastElement(Set<T>set)
//返回参数candidates中第一个存在于参数source中的元素
<E>EfindFirstMatch(Collection<?>source,Collection<E>candidates)
//返回 List/Set 中指定类型的元素。
<T>TfindValueOfType(Collection<?>collection,Class<T>type)
//返回 List/Set 中指定类型的元素。如果第一种类型未找到,则查找第二种类型,以此类推
ObjectfindValueOfType(Collection<?>collection,Class<?>[]types)
//返回List/Set中元素的类型
Class<?>findCommonElementType(Collection<?>collection)

文件、资源、IO 流

FileCopyUtils

  1. 输入
//从文件中读入到字节数组中
byte[]copyToByteArray(Filein)
//从输入流中读入到字节数组中
byte[]copyToByteArray(InputStreamin)
//从输入流中读入到字符串中
StringcopyToString(Readerin)
  1. 输出
//从字节数组到文件
voidcopy(byte[]in,Fileout)
//从文件到文件
intcopy(Filein,Fileout)
//从字节数组到输出流
voidcopy(byte[]in,OutputStreamout)
//从输入流到输出流
intcopy(InputStreamin,OutputStreamout)
//从输入流到输出流
intcopy(Readerin,Writerout)
//从字符串到输出流
voidcopy(Stringin,Writerout)

ResourceUtils

  1. 从资源路径获取文件
//判断字符串是否是一个合法的 URL 字符串。
staticbooleanisUrl(StringresourceLocation)
//获取URL
staticURLgetURL(StringresourceLocation)
//获取文件(在JAR包内无法正常使用,需要是一个独立的文件)
staticFilegetFile(StringresourceLocation)
  1. Resource
//文件系统资源D:...
FileSystemResource
//URL资源,如file://...http://...
UrlResource
//类路径下的资源,classpth:...
ClassPathResource
//Web容器上下文中的资源(jar包、war包)
ServletContextResource
//判断资源是否存在
booleanexists()
//从资源中获得File对象
FilegetFile()
//从资源中获得URI对象
URIgetURI()
//从资源中获得URI对象
URLgetURL()
//获得资源的InputStream
InputStreamgetInputStream()
//获得资源的描述信息
StringgetDescription()

StreamUtils

  1. 输入
voidcopy(byte[]in,OutputStreamout)
intcopy(InputStreamin,OutputStreamout)
voidcopy(Stringin,Charsetcharset,OutputStreamout)
longcopyRange(InputStreamin,OutputStreamout,longstart,longend)
  1. 输出
byte[]copyToByteArray(InputStreamin)
StringcopyToString(InputStreamin,Charsetcharset)
//舍弃输入流中的内容
intdrain(InputStreamin)

反射、AOP

ReflectionUtils

  1. 获取方法
//在类中查找指定方法
MethodfindMethod(Class<?>clazz,Stringname)
//同上,额外提供方法参数类型作查找条件
MethodfindMethod(Class<?>clazz,Stringname,Class<?>...paramTypes)
//获得类中所有方法,包括继承而来的
Method[]getAllDeclaredMethods(Class<?>leafClass)
//在类中查找指定构造方法
Constructor<T>accessibleConstructor(Class<T>clazz,Class<?>...parameterTypes)
//是否是equals()方法
booleanisEqualsMethod(Methodmethod)
//是否是hashCode()方法
booleanisHashCodeMethod(Methodmethod)
//是否是toString()方法
booleanisToStringMethod(Methodmethod)
//是否是从Object类继承而来的方法
booleanisObjectMethod(Methodmethod)
//检查一个方法是否声明抛出指定异常
booleandeclaresException(Methodmethod,Class<?>exceptionType)
  1. 执行方法
//执行方法
ObjectinvokeMethod(Methodmethod,Objecttarget)
//同上,提供方法参数
ObjectinvokeMethod(Methodmethod,Objecttarget,Object...args)
//取消 Java 权限检查。以便后续执行该私有方法
voidmakeAccessible(Methodmethod)
//取消 Java 权限检查。以便后续执行私有构造方法
voidmakeAccessible(Constructor<?>ctor)
  1. 获取字段
//在类中查找指定属性
FieldfindField(Class<?>clazz,Stringname)
//同上,多提供了属性的类型
FieldfindField(Class<?>clazz,Stringname,Class<?>type)
//是否为一个"publicstaticfinal"属性
booleanisPublicStaticFinal(Fieldfield)
  1. 设置字段
//获取target对象的field属性值
ObjectgetField(Fieldfield,Objecttarget)
//设置target对象的field属性值,值为value
voidsetField(Fieldfield,Objecttarget,Objectvalue)
//同类对象属性对等赋值
voidshallowCopyFieldState(Objectsrc,Objectdest)
//取消 Java 的权限控制检查。以便后续读写该私有属性
voidmakeAccessible(Fieldfield)
//对类的每个属性执行callback
voiddoWithFields(Class<?>clazz,ReflectionUtils.FieldCallbackfc)
//同上,多了个属性过滤功能。
voiddoWithFields(Class<?>clazz,ReflectionUtils.FieldCallbackfc,
ReflectionUtils.FieldFilterff)
//同上,但不包括继承而来的属性
voiddoWithLocalFields(Class<?>clazz,ReflectionUtils.FieldCallbackfc)

AopUtils

  1. 判断代理类型
//判断是不是Spring代理对象
booleanisAopProxy()
//判断是不是jdk动态代理对象
isJdkDynamicProxy()
//判断是不是CGLIB代理对象
booleanisCglibProxy()
  1. 获取被代理对象的 class
//获取被代理的目标class
Class<?>getTargetClass()

AopContext

  1. 获取当前对象的代理对象
ObjectcurrentProxy()