gpt4 book ai didi

java - String.hashCode() 是否可以跨 VM、JDK 和操作系统移植?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:06 25 4
gpt4 key购买 nike

最近出现了一个有趣的问题。我们遇到了一些使用 hashCode() 作为 MD5 加密盐源的代码,但这引发了一个问题:hashCode() 是否会为同一对象返回相同的值在不同的虚拟机、不同的 JDK 版本和操作系统上?即使不能保证,到目前为止它是否有任何变化?

编辑:我的意思是 String.hashCode() 而不是更通用的 Object.hashCode(),后者当然可以被覆盖。

最佳答案

没有。来自 http://tecfa.unige.ch/guides/java/langspec-1.0/javalang.doc1.html :

The general contract of hashCode is as follows:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, hashCode must consistently return the same integer. The integer may be positive, negative, or zero. This integer does not, however, have to remain consistent from one Java application to another, or from one execution of an application to another execution of the same application. [...]

关于java - String.hashCode() 是否可以跨 VM、JDK 和操作系统移植?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/190376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com