美文网首页
Java中==和equals()和hashCode()的区别

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

作者: 7i昂 | 来源:发表于2019-08-15 17:15 被阅读0次

    “==”:

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

    “equals()”:

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

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

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

    “hashCode()”:

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

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

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

    例如以下程序:

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

    相关文章

      网友评论

          本文标题:Java中==和equals()和hashCode()的区别

          本文链接:https://www.haomeiwen.com/subject/cxxtsctx.html