当前位置:首页 » java面试题 » 正文

Java中==和equals()和hashCode()的区别

112 人参与  2021年01月29日 09:12  分类 : java面试题  评论

“==”:

  ==是运算符,用来比较两个值、两个对象的内存地址是否相等;

“equals()”:

  equals是Object类的方法,默认情况下比较两个对象是否是同一个对象,内部实现是通过“==”来实现的。

如果想比较两个对象的其他内容,则可以通过重写equals方法,

例如:String类就重写了equals方法,改成了对象的内容是否相等。

具体实现可以参考:https://www.cnblogs.com/hujinshui/p/10038044.html

“hashCode()”:

  hashCoed也是Object类里面的方法,返回值是一个对象的哈希码,同一个对象哈希码一定相等,但不同对象哈希码也有可能相等。

如果两个对象通过equals方法比较相等,那么他的hashCode一定相等;

如果两个对象通过equals方法比较不相等,那么他的hashCode有可能相等;

例如以下程序:

class Untitled {    public static void main(String[] args) {
        System.out.println("AaAa".hashCode());//2031744
        System.out.println("BBBB".hashCode());//2031744    }
}


来源:心雨风晴博客(微信/QQ号:8812247),转载请保留出处和链接!

本文链接:https://jiangfengcheng.com/java/137743.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

鲁ICP备15005785号-4

Copyright Your WebSite.Some Rights Reserved.