0
点赞
收藏
分享

微信扫一扫

面对面试官,如何正确回答==与equals()的区别?

腾讯优测 2022-01-17 阅读 79

话不多说,先上硬菜

  1. == 既可以比较基本类型也可以比较引用类型:对于基本类型就是比较值,对于引用类型就是比较内存地址
  2. equals是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也是 = = == ==;我们知道String等类的equals方法是被重写过的,具体要看自定义类里有没有重写Object的equals方法来判断,在实际应用中,我们一般用equals来比较字符串的值

在这里插入图片描述

目录


一、==

作用:用来比较两个变量的值是否相等,即用于比较变量所对应的内存中所存储的数值是否相同,如果 = = == ==两边的是对象,即比较的是变量存放的对象的内存地址,判断这两个引用是否指向堆中的同一块内存,实际上是指针操作

二、equals()

equals() 方法用于将字符串与指定的对象比较

👌Object equals()

Object equals() 方法用于比较两个对象是否相等,是判断两个对象引用指向的是同一个对象,即比较 2 个对象的内存地址是否相等

  1. 语法:object.equals(Object obj)
  2. 参数:obj - 要比较的对象。
  3. 返回值:如果两个对象相等返回 true,否则返回 false

Object类中方法为:

public boolean equals(Object obj) {  
    return (this == obj);  
}

👌String equals()

String equals() 方法用于比较两个字符串的内容是否相等

  1. 语法:public boolean equals(Object anObject)
  2. 参数:anObject – 与字符串进行比较的对象。
  3. 返回值:如果给定对象与字符串相等,则返回 true;否则返回 false

String类中对于equals()的重写:

public boolean equals(Object anObject) {  
    if (this == anObject) {  
        return true;  
    }  
    if (anObject instanceof String) {  
        String anotherString = (String)anObject;  
        int n = value.length;  
        if (n == anotherString.value.length) {  
            char v1[] = value;  
            char v2[] = anotherString.value;  
            int i = 0;  
            while (n-- != 0) {  
                if (v1[i] != v2[i])  
                    return false;  
                i++;  
            }  
            return true;  
        }  
     }  
     return false;  
}  

举报

相关推荐

0 条评论