Java判断两个字符串(对象是否相等)

Java判断两个字符串(对象是否相等)

在Java中,常见的判断两个字符串(对象)是否相等的方法有两个,一个是.equals()方法,还有一个是"=="操作符,这两个的主要区别如下:

  • .equals()方法比较的是两个字符串(对象)的内容是否相等;
  • “==”操作符比较的是两个字符串(对象)的地址是否相等。

例如:

public class Demo {
    public static void main(String[] args) {
        String str1=new String("Hello,World!");
        String str2=new String("Hello,World!");

        System.out.println("str1.equals(str2):"+str1.equals(str2));
        System.out.println("str1==str2:"+(str1==str2));

        System.out.println("str1's address:"+System.identityHashCode(str1));
        System.out.println("str2's address:"+System.identityHashCode(str2));
    }
}

结果如下:

str1.equals(str2):true
str1==str2:false
str1's address:440434003
str2's address:1032616650

Process finished with exit code 0

当然,在Java里,默认的类都是继承Object类的,我们翻看一下Object类的equals()方法:

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

从代码中可以看出,Object类的equals()方法默认采用的是“==”操作符,假如子类没有重写Object的equals()方法,那么当子类的对象在进行比较的时候也会默认采用equals()方法,因此有时候我们有必要重写equals()方法。

posted @   LilyFlower  阅读(277)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示