根据Ali的“ Java开发手册”,关于Java对象有以下强制性协议。
[强制性]关于和谐过程,遵循以下规则
1)只要平等被覆盖,就必须覆盖哈希码。
2)由于SET存储非重复的对象,因此基于哈希码和平等的判断,因此必须用这两种方法写入set存储的对象。
3)如果将自定义对象用作地图键,则必须编写哈希码和平等。
注意:字符串已被哈希码覆盖并等于方法,因此我们可以快乐地将字符串对象用作键。
下面进行必要的补充分析。
保证可靠性和性能。
它可用于确定两个对象是否相等,但两个对象是不同的
“错误判断”是指
这是插入数据(调用方法,该方法将调用内部方法)的一个示例,以解释“保证可靠性和保证性能”一词。在该方法中,确定下面显示两个键是否是相同的代码。
判断两个键是否相同时,
运行程序,输出结果如下。
根据Ali的“ Java开发手册”,因为SET存储不是重复的对象,因此判断是基于hashcode和equals的,因此SET存储的对象必须编写这两种方法。”“修改代码如下。
目前,运行程序,输出结果如下。
以下代码,一个自定义对象,作为地图的键。
在上面的代码中,判断图包含键值。键代码如下所示,该方法用于判断。
执行上述代码,因为没有重写方法,判断总是错误的,导致地图中的新方法,导致死周期,最终导致内存溢出。
原始:https://juejin.cn/post/7103010995970244645