1.这个类的基本说明:
从这段代码,可以看出,这个类包括了非空检查、方法的非空参数检查、 比较对象的hashCode、为对象返回一个字符串表示、比较两个对象。
2.构造方法
1、这个类从jdk1.7开始出现的;
2、该类是使用final修饰的,不能被继承;
3、该类的构造方法被私有化(使用private修改),不能直接创建对象
4、该类中所有的方法都是静态的,可以使用类名点直接调用,不需要创建对象。
所以,如果工作中,写工具类也可以私有化构造方法,同时抛一个异常。
3.静态方法
equals:比较2个对象是否相等,以后工作中有需要的话,可以直接用jdk这个工具类的方法判断。
deepEquals:深度比较2个对象是否相等。如果==的话,返回true,如果任意一个为null,返回false,否则,用Arrays.deepEquals方法比较是否相等
hashCode:返回一个对象的hash值,对象为null时,返回0.
hash:传入多个对象时,返回一个hash值,如果对象只有一个时,这个值不等于引用地址的hash值,可以用hashCode方法计算。
toString:将对象转成字符串。
toString(Object 0,String nullDefault):将对象转成字符串,如果字符串为null,则为nullDefault,也就是当字符串为null时可以设置默认值。
compare:使用指定的比较器比较2个数的大小。其中一个数为null时是否抛出异常,取决于所选的比较器。
requireNonNull:判空操作。
requireNonNull(Object o,String message):判空操作,当为控制,跑出异常,异常信息为message。
inNull:对象是否为null,该方法从jdk1.8才开始有的。
nonNull:对象是否不为null,该方法从jdk1.8才开始有的。
requireNonNullElse(T obj,T defaultObj):当obj不为null,返回obj,否则,判断defaultObj是否为null,不为null,返回defaultObj,为null,返回字符串“defaultObj”。该方法从jdk9开始才有的。
requireNonNullElseGet(T obj,Supplier extends T>supplier):当obj不为null,返回obj,否则,判断supplier是否为null,不为null,再判断supplier.get()是否为null,不为null,返回字符串supplier.get()。该方法从jdk9开始才有的。
requireNonNull(T obj,Supplier
checkIndex:从jdk9开始才有的方法。
@ForceInline注解,当HotSpot VM内联方法或构造函数时,如果要忽略标准内联指标,那么可以将方法或构造函数注释为“force inline”。
必须谨慎使用此注释。当惟一合理的替代方法是将特定方法或构造函数的名称绑定到HotSpot VM中,以便内联策略进行特殊处理时,这种方法非常有用。
不能依赖该注释作为避免调优VM内联策略的替代方法。在一些情况下,它可能充当临时的解决方案,直到HotSpot VM执行的分析和内联得到足够的改进。
此注释仅对引导加载程序加载的类的方法或构造函数生效。在引导加载程序之外加载的类的方法或构造函数上的注释将被忽略。
checkFromToIndex:该方法从jdk9开始才有的。
checkFromIndexSize:该方法从jdk9开始才有的。