Gil*_*ili 8 java string hashcode backwards-compatibility
关于依赖当前实施是否安全似乎存在争议,String.hashCode()因为从技术上讲,它是由规范(Javadoc)保证的.
String.hashCode()在规范中指定了实现?String.hashCode()将来改变,天空会下降?(这可能由#2解释)依赖于hashCode()的特定实现的原因是它是否被持久存储到数据库,文件或任何其他存储介质中.如果在散列算法发生变化时读回数据,则会发生坏事(tm).您可能会遇到意外的哈希冲突,更令人担忧的是,无法通过哈希找到某些东西,因为哈希在持久化和"现在"之间的数据之间发生了变化.
事实上,这几乎解释了#3点=)
点#1的原因可能是"允许互操作性".如果hashCode实现被锁定,则可以非常安全地在不同的Java实现之间共享数据.即,无论实现如何,给定对象的散列总是相同的.
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |