> In some JDK classes there's still the following hashCode() implementation: > > long objNum; > > public int hashCode() { > return (int) objNum; > } > > This outdated expression should be replaced with Long.hashCode(long) as it > > - uses all bits of the original value, does not discard any information > upfront. For example, depending on how you are generating the IDs, the upper > bits could change more frequently (or the opposite). > > - does not introduce any bias towards values with more ones (zeros), as it > would be the case if the two halves were combined with an OR (AND) operation. > > See https://stackoverflow.com/a/4045083 > > This is related to https://github.com/openjdk/jdk/pull/4309
Сергей Цыпанов has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision: - Merge branch 'master' into 8268764 - 8268764: Use Long.hashCode() instead of int-cast where applicable ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/4491/files - new: https://git.openjdk.java.net/jdk/pull/4491/files/27233ae1..12a1d3ac Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=00-01 Stats: 44011 lines in 878 files changed: 23038 ins; 17963 del; 3010 mod Patch: https://git.openjdk.java.net/jdk/pull/4491.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/4491/head:pull/4491 PR: https://git.openjdk.java.net/jdk/pull/4491