一、==
- 用于基本数据类型和引用数据类型变量中。
- 对于引用数据来讲,比较的是引用对象的地址值是否相同,即两个引用是否指向一个引用对象。
- 对于基本数据类型比较的是数值是否相等。int 10 ==double 10.0 返回为true。char类型的本质是数值。
二、equals
- 是一个方法而非运算符
- 只适用于引用数据类型的比较
- String、Data、File、包装类等,等都重写了Object类中的equals()方法。重写以后比较的不是地址值,而是数值。
- 通常情况下,比较自定义类的对象是否相同,用的equals应该比较值,因此应该重写equals方法。
- 重写equals的规则是:比较对象的内容。
三、equals重写原则
- 对称性:x.equals(y) 与y.equals(x)结果一致
- 自反性:x.equals(x)返回值是true
- 传递性:if x.equals(y)为true,y.equals(z)为true,则x.equals(z)为true
- 一致性:x.equals(y)为true,则x,y不变,重复n次还为true
- 任何情况下,x.equals(null)都为false;x.equals(与x类型不通)返回false。
四、toString()
- 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法。
- String、Data、File等包装类都重写了toString()方法。
- 自定义类也可以重写toString()方法。当调用此方法时,返回对象的“实体内容”。
五、总结
- 是一个方法而非运算符
- 只适用于引用数据类型的比较
- String、Data、File、包装类等,等都重写了Object类中的equals()方法。重写以后比较的不是地址值,而是数值。
- 通常情况下,比较自定义类的对象是否相同,用的equals应该比较值,因此应该重写equals方法。
- 重写equals的规则是:比较对象的内容。
三、equals重写原则
- 对称性:x.equals(y) 与y.equals(x)结果一致
- 自反性:x.equals(x)返回值是true
- 传递性:if x.equals(y)为true,y.equals(z)为true,则x.equals(z)为true
- 一致性:x.equals(y)为true,则x,y不变,重复n次还为true
- 任何情况下,x.equals(null)都为false;x.equals(与x类型不通)返回false。
四、toString()
- 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法。
- String、Data、File等包装类都重写了toString()方法。
- 自定义类也可以重写toString()方法。当调用此方法时,返回对象的“实体内容”。
五、总结
- 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法。
- String、Data、File等包装类都重写了toString()方法。
- 自定义类也可以重写toString()方法。当调用此方法时,返回对象的“实体内容”。
五、总结
toString()与equals()方法都可以用快捷键生成,开发中不要自己手写,自己写的可能有Bug。



