== 和 equals 比较的区别
时间: 2023-09-05 18:06:48 浏览: 102
==和equals的比较
在 Java 中,`==` 和 `equals` 是用来比较两个对象是否相等的方式。
`==` 运算符比较两个对象的引用是否指向同一个内存地址。如果两个对象的引用指向的是同一个内存地址,那么 `==` 返回 `true`,否则返回 `false`。
`equals` 方法比较两个对象的内容是否相等。默认情况下,`equals` 方法比较的是两个对象的引用是否相等,但是我们可以在自定义类中重写 `equals` 方法,来实现自定义的相等比较规则。
例如,我们可以在一个自定义的 `Person` 类中重写 `equals` 方法,来比较两个人是否有相同的名字和年龄:
```java
public class Person {
private String name;
private int age;
// 构造方法、getter、setter 略
@Override
public boolean equals(Object o) {
if (this == o) return true; // 如果是同一个对象,返回 true
if (o == null || getClass() != o.getClass()) return false; // 如果传入的对象为 null,或者类别不同,返回 false
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name); // 比较名字和年龄是否相同
}
}
```
然后我们可以使用 `==` 来比较两个 `Person` 对象的引用是否相等,也可以使用 `equals` 方法来比较两个 `Person` 对象的内容是否相等。
阅读全文