spring boot equals 和==
时间: 2024-08-17 17:01:55 浏览: 48
在Spring Boot中,`equals()` 和 `==` 都是用于比较Java对象的两个关键字,但是它们的作用有所不同。
1. `equals()`:这是Java中的方法,通常用于比较对象的内容是否相等。它属于Object类的一部分,每个类都默认继承了这个方法。当你想要检查两个对象是否有相同的属性值时,你应该使用`equals()`. 对于自定义的类,如果需要更精确的相等判断,可以覆盖`equals()`方法,提供自己的逻辑。
```java
class Person {
private String name;
//...
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
Person person = (Person) obj;
return Objects.equals(name, person.name);
}
}
Person p1 = new Person("Alice");
Person p2 = new Person("Alice"); // 使用equals()会返回true,因为name相等
```
2. `==`:这个操作符则是用于比较对象的引用是否指向同一个内存地址。当你说`p1 == p2`时,你在查看这两个变量是否引用的是同一个实例。如果是基本数据类型如int、String等,`==`比较的是值;对于引用类型(如对象),`==`比较的是指针。
```java
Person p1 = new Person("Alice");
Person p2 = new Person("Alice"); // 这里p1 != p2,因为它们是两个独立的对象
```
阅读全文