/** * equals()方法的使用 * * 1.java.lang.Object类中的equals()方法的定义: * * public boolean equals(Object obj) { return (this == obj); } * * 说明:Object类中equals()比较两个对象的引用地址是否相同。(或:比较两个引用是否指向同一个对象实体) * * 2. 像String、Date、File、包装类等重写了Object类中的equals()方法,比较两个对象中的实体内容是否相等。 * * 3. 对于自定义类来讲,如果没有重写Object类中的equals()方法,调用equals()方法时,仍然比较两个对象的引用地址 * 是否相同。 * * 4. 一般情况下,在开发中一旦调用了自定义类的equals(),通常都是重写以后的equals()方法。 * * 5.重写equals()的规则:比较两个对象的属性是否都相等。 * * * 面试题:== 和 equals() 区别? * * ==:使用范围:可以操作基本数据类型 和 引用数据类型 * 如果操作的是基本数据类型:比较两个基本数据类型的变量对应的值是否相等。 * 如果操作的是引用数据类型:比较两个引用的地址是否相同。 * * * equals():使用范围:只适用于引用数据类型 * 1.java.lang.Object类中toString()定义如下: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());通过反射或渠道当前对象的 的名字+当前对象所在位置, 当前对象位置算法:通过hashcode方法算出然后转换成16进制,全类名+存在于堆空间的地址 } * 2. 当我们打印一个对象的引用时,实际上就是调用了其toString() * 3. 像String、Date、File、包装类等重写了Object类中的toString(),返回其代表的具体内容 * 4. 对于自定义类而言,如果我们没有重写Object类中的toString()方法,则返回的仍然是地址值。 * 5如果重写的话,重写的规则:返回当前对象的属性信息。
原文:https://www.cnblogs.com/zmy-520131499/p/11165836.html