Java基础之equals与==的区别以及hashCode与equals方法解析

一.equals与==

  1.equals方法

    a.默认情况下如果是继承超类的equals方法其实底层也是用了==,也是比较引用的地址,但是我们可以重写这个方法,让它按照我们想要的方式去比较对象的内容。

    b.属于Object类的方法,可以重写,私人订制。

  2.==

    a.用于比较变量或对象的内存地址一不一致

    b.逻辑运算符

二.hashCode与equals方法解析

  1.两者相同点

     a.其实都是拿来判断对象的值是否相等的方法

     b.都属于Object里面的方法

  2.两者区别

     a.两个对象,如果equals方法判断为true,那肯定相等。

     b.两个对象使用hashCode得出为true,不一定相等,不同对象也可能产生一样的hashcode,它不是绝对可靠的。

  3.使用实例

     a.在一些要求不能重复的容器如set下的,新元素put进来时候要和容器里面的进行比对,这个时候就是先用hashCode方法,比较快,如果这一步就死了,那就死了。如果过了,再用equals方法。

posted @ 2018-11-05 15:58  AJimmyFang  阅读(145)  评论(0)    收藏  举报