java.util.Objects
Objects 与 Object 区别
Object 是 Java 中所有类的基类,位于java.lang包。
Objects 是 Object 的工具类,位于java.util包。被final修饰不能被继承,拥有私有的构造函数。
它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。
equals
equals方法是判断两个对象是否相等。
在比较两个对象的时候,Object.equals方法容易抛出空指针异常。
Objects.equals方法中已经做了非空判断,所以不会抛出空指针异常,它是null-save空指针安全的,而且也可以简化代码。
public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); }
deepEquals
深度比较两个对象 boolean
public static boolean deepEquals(Object a, Object b) { if (a == b) return true; else if (a == null || b == null) return false; else return Arrays.deepEquals0(a, b); }
hashCode
返回一个整型数值,表示该对象的哈希码值。若参数对象为空,则返回整数0;若不为空,则直接调用了Object.hashCode方法。
public static int hashCode(Object o) { return o != null ? o.hashCode() : 0; }
hash
为一系列的输入值生成哈希码,该方法的参数是可变参数。
public static int hash(Object... values) { return Arrays.hashCode(values); }
它是将所有的输入值都放到一个数组,然后调用Arrays.hashCode(Object[])方法来实现哈希码的生成。
对于当一个对象包含多个成员,重写Object.hashCode方法时,hash方法非常有用。
nonNull
判断非空方法,如果参数不为空则返回true。
public static boolean nonNull(Object obj) { return obj != null; }
compare
如果两个参数相同则返回整数0。因此,如果两个参数都为空对象null,也是返回整数0。
(a == b) ? 0 : c.compare(a, b);
toString
toString(Object o)
返回指定对象的字符串表示形式。如果参数为空对象null,则返回字符串 “null”。
(obj == null) ? "null" : obj.toString();
toString(Object o, String nullDefault)
返回指定对象的字符串表示形式。如果参数为空对象null,则返回第二个参数nullDefault所指定的对象。
- Java并发精选面试题,还有哪些是你不会的?(含答案和思维导图)
- JAVA模拟简单的多线程服务器
- java线程池
- 9月最新184道阿里、百度、腾讯、头条Java面试题合集
- springboot~通过面向接口编程对控制反转IOC的理解
- JDK8新特性进行编解码(Base64)
- 10道面试官喜欢问的微服务面试题Spring Cloud+Spring Boot
- 关于java虚拟机(JVM)的一些简单理解
- 记一次springboot项目部署全过程
- JAVA 多线程学习笔记之第三章内容
- JAVA 多线程学习笔记之第二章内容
- Java Set类的常见实现类 TreeSet和HashSet
- 「JavaWeb」客户关系管理系统
- 一些常用java工具类你知道的有多少?
- java 开关飞行模式_没有开关的工厂模式,这就是应该如何做
- springboot出现MaxUploadSizeExceededException 异常
- Springboot的slf4j的配置文件模板
- weka机器学习实战_Weka教程–使用Java的基于GUI的机器学习
- Java语法
- JAVA的变量、作用域、常亮