基本介绍

equals方法是java.lang.Object类的方法

用法说明

一、对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

  1. “==”比较两个变量本身的值,即两个对象在内存中的首地址。(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)
  2. “equals()”比较字符串中所包含的内容是否相同。
String s1,s2,s3 = "abc",s4 = "abc";
s1 = new String("abc");
s2 = new String("abc");

s1 == s2 //结果为false,两个变量内存地址不一样,也就是它们指向的对象不同

s1。equals(s2) //结果为true,两个变量所包含的内容是abc,故相等。
public class EqualsTest {
    public static void main(String[] args) {
        String s1,s2,s3 = "abc",s4 = "abc";
        s1 = new String("abc");
        s2 = new String("abc");
        System.out.println("s1 == s2:"+(s1 == s2));
        System.out.println("s1 == s3:"+(s1 == s3));
        System.out.println("s3 == s4:"+(s3 == s4));
        System.out.println("s1.equals(s2):"+(s1.equals(s2)));
        System.out.println("s1.equals(s3):"+(s1.equals(s3)));
        System.out.println("s3.equals(s4):"+(s3.equals(s4)));
    }
}

EqualsTest.jpg

简单点来说,==是比较左右是不是一个东西,equals是比较左右是不是长得一样
地址一样,那么就为同一个对象,自然长得肯定也一样(==为true的时候,equals必然为true)
地址不一样,但是两个地址存放的内容可能是一样的(==为false的时候,equals可能为true)
1.==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同
2.==是指对内存地址进行比较,equals()是对字符串的内容进行比较
3.==指引用是否相同,equals()指的是值是否相同

最后修改:2021 年 07 月 21 日 07 : 46 PM
如果觉得我的文章对你有用,请随意赞赏