Java,object.hashCode(值更改为9和10 figit)

Java,object.hashCode(值更改为9和10 figit),java,hashcode,Java,Hashcode,结果如下: 1956725890 356573597 1735600054 21685669 2133927002 代码: 问题:为什么是10或9位数?并且每秒是9强)(如果要重写hashcode,则将使用该hashcode方法生成hashcode,否则将使用对象类的hashcode方法,并根据jvm中对象的地址/引用生成hashcode 还有equal和hashcode关系 希望我能帮助您。如果您要重写hashcode,那么将使用该hashcode方法生成hashcode,否则将使用对象类的

结果如下:

1956725890
356573597
1735600054
21685669
2133927002
代码:


问题:为什么是10或9位数?并且每秒是9强)(

如果要重写hashcode,则将使用该hashcode方法生成hashcode,否则将使用对象类的hashcode方法,并根据jvm中对象的地址/引用生成hashcode

还有equal和hashcode关系


希望我能帮助您。

如果您要重写hashcode,那么将使用该hashcode方法生成hashcode,否则将使用对象类的hashcode方法,并根据jvm中对象的地址/引用生成hashcode

还有equal和hashcode关系

希望我能帮助您。

hashCode()返回获取对象引用的内存地址,并使用一些逻辑将其转换为整数格式。因此hashCode()的结果也将取决于内存

这些是我的箱子

案例:1

输出

4072869
1671711
11394033
4384790
9634993
1641745
4072869
1671711
11394033
4384790
9634993
1641745
在六个哈希码中,只有一个是8位的,其他的是7位的

案例:2

输出

4072869
1671711
11394033
4384790
9634993
1641745
4072869
1671711
11394033
4384790
9634993
1641745
这里的输出模式也是相同的,不是10位和9位。因此会有差异,位数会有所不同。

hashCode()返回获取对象引用的内存地址,并使用一些逻辑将其转换为整数格式。hashCode()的结果也将取决于内存

这些是我的箱子

案例:1

输出

4072869
1671711
11394033
4384790
9634993
1641745
4072869
1671711
11394033
4384790
9634993
1641745
在六个哈希码中,只有一个是8位的,其他的是7位的

案例:2

输出

4072869
1671711
11394033
4384790
9634993
1641745
4072869
1671711
11394033
4384790
9634993
1641745

这里的输出模式是相同的,而不是10和9位数。因此会有差异,位数会有所不同。

问题:为什么不呢?取决于什么?如果我的对象值相同…这些对象是等效的,但不相同。内存中至少有一个不同的想法,即引用或地址。您可以简单地用
ch检查elovek1==checlovek2
查看是否存在相同的内容。阅读并理解javadoc for Object#hashCode:除非您提供自己的实现,否则它“通常”默认为“将对象的内部地址转换为整数”,并且由于您有不同的对象,这些地址也将不同。默认的hashCode()是为每个对象随机生成的31位数字,与对象包含的内容无关。如果要执行其他操作,则需要重写该方法。长度可以为1到10位。问题:为什么不可以?取决于它取决于什么?如果我的对象值相同…这些对象是等效的,但不相同。至少有一个dif内存中的引用或地址。您只需使用
chelovek1==checlovek2
检查是否存在相同的引用或地址。阅读并理解javadoc for Object#hashCode:除非您提供自己的实现,否则它“通常”默认为“将对象的内部地址转换为整数”由于对象不同,这些地址也会不同。默认的hashCode()是为每个对象随机生成的31位数字,而不管对象包含什么。如果要执行其他操作,则需要重写该方法。长度可以为1到10位。