2. == 和 equals 的区别是什么?
时间: 2023-06-07 21:09:06 浏览: 103
== 是 Java 中用于比较两个对象是否相等的运算符,它比较的是两个对象的引用是否相等;而 equals() 是 Object 类中定义的方法,可以被子类覆盖,一般用于比较两个对象内容是否相等。在大多数情况下,equals() 方法的实现是通过比较对象中的属性来判断两个对象是否相等。
相关问题
18.==和equals的区别?
18. `==` 和 `equals()` 是 Java 中用于比较两个对象的重要运算符和方法,它们在用途上有所区别:
- **`==`** 运算符通常用于比较基本数据类型的值,如 int、boolean 等,以及对象引用是否指向同一个内存地址。当用于比较对象时,它检查的是两个引用是否指向同一个对象实例。
例如:
```java
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2); // 输出 false,因为它们虽然内容相同,但不是同一个对象实例
```
- **`equals()`** 方法则是针对对象的,对于字符串、数组等类已经覆盖了这个方法,用于比较对象的内容是否相等。如果一个类没有重写 equals(),那么默认的行为就是比较引用,跟 `==` 效果一样。但是大部分情况下,我们会重写 equals() 以提供更准确的比较,比如忽略大小写或空格等。
例如,在自定义的类中,我们可能会这样做:
```java
public class CustomClass {
private String value;
@Override
public boolean equals(Object obj) {
if (obj instanceof CustomClass) {
CustomClass other = (CustomClass) obj;
return this.value.equals(other.value);
}
return false;
}
}
```
在这里,`equals()` 比较的是两个 CustomClass 对象的 value 属性内容是否相等。
1.简述==与equals的区别?
在Java中,`==`和`equals()`都是用于比较两个对象的方法。但它们之间有着明显的区别:
1. `==`比较的是两个对象的内存地址,即判断两个对象是否指向同一个内存地址。
2. `equals()`比较的是两个对象的内容是否相同,即判断两个对象是否具有相同的属性值。
例如:
```
String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1 == str2); // false
System.out.println(str1.equals(str2)); // true
```
在这个例子中,`==`比较的是`str1`和`str2`两个对象的内存地址是否相同,由于它们分别指向不同的内存地址,所以返回`false`。而`equals()`比较的是`str1`和`str2`两个对象的内容是否相同,由于它们的内容都是"hello",所以返回`true`。
阅读全文