==和equals区别
时间: 2023-09-03 21:11:15 浏览: 105
`==` 和 `equals()` 是在Java中用于比较对象的方法。
`==` 操作符用于比较两个对象的引用是否相等。它比较的是对象在内存中的地址。当两个对象引用指向同一个对象时,返回`true`;否则返回`false`。例如:
```java
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // 输出 true
System.out.println(str1 == str3); // 输出 false
```
`equals()` 方法用于比较两个对象的内容是否相等。默认情况下,它与`==`操作符的作用相同,比较的是对象的引用。但是,可以通过在类中重写`equals()`方法来改变它的行为,使其比较对象的内容而不是引用。例如:
```java
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1.equals(str2)); // 输出 true
System.out.println(str1.equals(str3)); // 输出 true
```
需要注意的是,当重写`equals()`方法时,通常也需要重写`hashCode()`方法,以确保它们在使用哈希表等数据结构时能够正确工作。
总结起来,`==` 操作符比较的是对象的引用,而 `equals()` 方法比较的是对象的内容。
阅读全文