> 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