Maybe can check each hashCode to see how they calculate it
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Object.java https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/String.java Eric Bresie ebre...@gmail.com (mailto:ebre...@gmail.com) > On May 6, 2021 at 12:49:30 PM CDT, Eduard <i...@dejongfrz.nl > (mailto:i...@dejongfrz.nl)> wrote: > You are computing the hash on a compile time constant value, so that value is > itself a compile tiem constant, and can be deived from the memory location > where that constant gets allocated when the JVM starts up. This works for > strings as they are all internalized at compile time, that is stored in a > common table that holds a unique copy of each String, that way the storage > location corresponds with the content of the String, and so does the hash > value. > > If you look at the code for String.java, you will see it actually computes > the hash value based on the characters it contains. This only is used on > strings you create while your code is running. > > -- > Eduard > > Shaun Flynn wrote on 06/05/2021 17:22 (x-apple-data-detectors://4): > > I ran into this, thinking it would be the same per execution, but it does > > not work like that. > > > > If you create a for loop doing something like... > > > > String test = "Hello World!"; > > for(i = 0; i < 100; i++) { > > System.out.println(test.hashCode()); > > } > > > > You will get 100 identical values. > > > > Run it again, you will get 100 values identical values again, but the value > > has changed. > > > > Ie first run prints "46521890 (tel:46521890)" 100 times > > Second run prints "-56905325700" 100 times > > > > And each subsequent run with produce a different hashCode repeated 100 > > times. > > > > I believe (feel free to correct me) that the algorithm or formula for > > producing ths hashCode has the memory address as an input, thus it will > > different per execution because the JVM allocates the memory, which has the > > effect of appearing random. > > > > It confused me at first, but this is the intended functionality: if you are > > intending to store hashes for lookup or other purposes, use one of the > > already defined hash functions eg > > https://www.geeksforgeeks.org/sha-256-hash-in-java/ > > > > Hope this helps. > > > > Shaun > > On Thu, 6 May 2021, 13:46 Charles Johnson, <cehjohn...@gmail.com > > (mailto:cehjohn...@gmail.com)> wrote: > > > On 06/05/2021 12:37 (x-apple-data-detectors://9), Christopher C. Lanz > > > wrote: > > > > It would be helpful if I could rely on hashCode always to return the > > > > same integer for the same object. > > > > > > What are you doing such that needs to be the case? > > > > > > > > > > > > CJ > > > > > > > > > > > > > > >