string equals和==的区别
时间: 2023-06-05 19:47:51 浏览: 116
在Java中,"=="和"equals()"都可以用于比较两个字符串是否相等,但它们的实现方式和比较的对象不同。
"=="比较的是两个字符串对象的引用是否指向同一个内存地址,也就是说,它比较的是对象的身份。如果两个字符串对象的引用指向同一个内存地址,则返回true,否则返回false。
而"equals()"比较的是两个字符串对象的值是否相等,也就是说,它比较的是对象的内容。如果两个字符串对象的值相等,则返回true,否则返回false。
因此,如果你想比较两个字符串的内容是否相等,应该使用"equals()"方法。而如果你想比较两个字符串对象的引用是否指向同一个内存地址,则应该使用"=="操作符。
相关问题
equals和==的区别
在Java中,equals和==都是用于比较两个对象是否相等的操作符,但它们的作用有所不同。
==是一个比较运算符,用于判断两个对象的地址是否相同。如果两个对象的地址相同,则它们一定是同一个对象;如果它们的地址不同,则它们是不同的对象。例如:
```
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方法比较的是两个对象的地址,即与==的作用相同。但是,可以通过重写equals方法来改变比较的方式。例如:
```
public class Person {
private String name;
private int age;
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person other = (Person) obj;
return this.name.equals(other.name) && this.age == other.age;
}
}
Person p1 = new Person("Tom", 18);
Person p2 = new Person("Tom", 18);
Person p3 = new Person("Jerry", 20);
System.out.println(p1 == p2); // false
System.out.println(p1.equals(p2)); // true
System.out.println(p1.equals(p3)); // false
```
在上面的例子中,我们重写了Person类的equals方法,比较的是两个对象的name和age属性是否相同。因此,p1和p2虽然是不同的对象,但它们的内容相同,equals方法返回true。
总之,==比较的是两个对象的地址,而equals比较的是两个对象的内容。如果需要比较两个对象的内容,应该使用equals方法而不是==操作符。
equals和==区别
在 Java 中,equals() 方法用于比较两个对象是否相等,而 == 运算符用于比较两个对象的引用是否相等。
equals() 方法比较的是两个对象的内容是否相等,而不是它们的引用。如果两个对象的内容相等,则返回 true,否则返回 false。equals() 方法一般需要重写,因为从 Object 类继承的默认实现只是比较两个对象的引用是否相等。
而 == 运算符比较的是两个对象的引用是否相等。如果两个对象的引用指向同一个对象,则返回 true,否则返回 false。
举个例子:
```
String a = new String("abc");
String b = new String("abc");
System.out.println(a.equals(b)); // 输出 true,因为两个字符串的内容相等
System.out.println(a == b); // 输出 false,因为 a 和 b 指向不同的对象
```
所以,当需要比较两个对象的内容时,应该使用 equals() 方法,而当需要比较两个对象的引用时,应该使用 == 运算符。
阅读全文