== 和 equals 的区别 为什么equals要重写hashCode
==和equals的本质区别?
== 是一个操作符
equals是一个方法
==判断的是两个变量是否指向同一个地址的值 也就是说 是否指向相同的存储地址
equals在没有重写的时候,默认调用的就是"",所以不重写的时候和""没有什么区别,重写之后equals()判断两个变量或对象的值是否相同,如果是字符的话则是判断两个对象的内容是否相同。
equals重写hashCode
当然是为了让代码的质量更高,效率更快,equals方法重写hashCode,先进行hashCode比较,如果不同,那么就没有必要进行equals的比较了,这样的话就大大减少了equals的比较次数。