大家好!今天我们继续分享星球的面试系列文章,也欢迎大家来加入我的星球
适用范围:
这道题适合刚毕业的同学,属于基础类问题,不过从之前跟同学沟通的过程中,发现对于这个问题依然有同学会有困惑
参考答案:
“==”操作符用于比较两个对象的引用是否相等,也就是说,它比较两个对象在内存中是否指向同一个对象
例如:
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1 == str2); // 输出false,因为str1和str2指向不同的对象
“equals”方法通常用于比较两个对象的值是否相等。
不过请注意!默认情况下,所有的Java对象都继承自Object类,而Object类中的“equals”方法比较的是对象的引用。因此,在使用“equals”方法比较自定义类的对象时,需要重写该类的“equals”方法来比较对象的值。
比如String类就是重写了“equals”方法来比较对象的值
例如:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
if (obj instanceof Person) {
Person other = (Person) obj;
return name.equals(other.name) && age == other.age;
} else {
return false;
}
}
}
Person person1 = new Person("John", 25);
Person person2 = new Person("John", 25);
System.out.println(person1.equals(person2)); // 输出true,因为person1和person2的值相等
使用场景:
- 在比较基本数据类型(如int、float、boolean等)时,使用“==”操作符。
- 在比较对象引用时,使用“==”操作符。
- 在比较对象值时,使用“equals”方法。特别是对于自定义类的对象,需要重写“equals”方法来比较对象的值。
好了,今天星球的内容就分享到这了,也欢迎大家来加入我的知识星球!一起提高面试准备效率!