《架构风清扬-Java面试系列第8讲》谈“equals”和“==”的区别

大家好!今天我们继续分享星球的面试系列文章,也欢迎大家来加入我的星球

适用范围:

这道题适合刚毕业的同学,属于基础类问题,不过从之前跟同学沟通的过程中,发现对于这个问题依然有同学会有困惑

参考答案:

“==”操作符用于比较两个对象的引用是否相等,也就是说,它比较两个对象在内存中是否指向同一个对象

例如:

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的值相等

使用场景:

  1. 在比较基本数据类型(如int、float、boolean等)时,使用“==”操作符。
  2. 在比较对象引用时,使用“==”操作符。
  3. 在比较对象值时,使用“equals”方法。特别是对于自定义类的对象,需要重写“equals”方法来比较对象的值。

好了,今天星球的内容就分享到这了,也欢迎大家来加入我的知识星球!一起提高面试准备效率!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值