hashcode和equals的区别
equals:反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。
hashCode:计算出对象实例的哈希码,并返回哈希码,又称为散列函数。
hashcode:对象的初始地址的整数表示
Java中的对象是JVM在管理,JVM会在她认为合适的时候对对象进行移动,比如,在某些需要整理内存碎片的GC算法下发生的GC。此时,对象的地址会变动,但hashcode不会改变。
1.hashCode是为了提高在散列结构存储中查找的效率,在线性表中没有作用。
2.一般一个类的对象如果会存储在HashTable,HashSet,HashMap等散列存储结构中,那么重写equals后最好也重写hashCode,否则会导致存储数据的不唯一性(存储了两个equals相等的数据)。而如果确定不会存储在这些散列结构中,则可以不重写hashCode。
3.若两个对象equals返回true,则hashCode有必要也返回相同的int数。
4.若两个对象equals返回false,则hashCode不一定返回不同的int数,但为不相等的对象生成不同hashCode值可以提高哈希表的性能。
5.若两个对象hashCode返回相同int数,则equals不一定返回true。
6.若两个对象hashCode返回不同int数,则equals一定返回false。
7.同一对象在执行期间若已经存储在集合中,则不能修改影响hashCode值的相关信息,否则会导致内存泄露问题。
8.一般来说涉及到对象之间的比较大小就需要重写equals方法。
猜你喜欢内容
-
好小蚁 GEO|精准套餐定价
好小蚁 GEO|精准套餐定价
-
高考为什么重要
每年高考都是在公平地选拔人才,为国家将来的发展储蓄人才资源。高考选拔出的人中绝大多数人将会是这个...
-
高考文综多少分
文科综合包括历史、地理、政治,总计300分。地理100分,历史100分,政治100分。上海情况比较特殊,选考三...
-
沉积岩有哪些
沉积岩是三大岩类的一种,又称为水成岩,另外两种是岩浆岩和变质岩,其中沉积岩主要包括石灰岩、砂岩、...
-
充分必要条件记忆口诀
充分必要条件记忆口诀包括定义法、集合法、筛选法等。箭头所指为必要,箭尾所指为充分。若A>B,则x∈A...
-
blow的过去式和过去分词及用法有哪些
blow的过去式:blew,过去分词:blown。blow,作名词时意为“吹;打击,猛击;挫折;强风;擤鼻子;(非...
-
湖北大还是武汉大?
湖北比武汉大,武汉属于湖北省的,也是湖北经济发展的支柱城市,湖北省介于北纬29°01′53″—33°6′47...
-
武汉比济南大多少
武汉是湖北省省会,属于副省级市,截止2019年末,武汉总面积8569.15平方千米。济南市山东省省会,也是副...
-
中医学理论体系形成的条件
中医学理论体系形成的条件介绍:科学是一种社会现象,它不能游离于社会之外而孤立地存在与发展。科学体...
-
“旌旗拂座隅”出自哪里
“旌旗拂座隅”出自唐代李冶的《句》。“旌旗拂座隅”全诗《句》唐代 李冶经时未架却,心绪乱纵横。(季...





















