long a,b,c; // randomly assigned 64-bit values
As I first understood the way this blog post was written, the author was relying on the JRE to populate these uninitialized variables with random values.Edit: that was an incorrect understanding. It's not shown in the post, but in his real code he actually does assign values to these (thanks for the clarifying replies).
More of the code for context:
// in Java, long is 64-bit, int 32-bit
long a,b,c; // randomly assigned 64-bit values
int hash32(long x) {
int low = (int)x;
int high = (int)(x >>> 32);
return (int)((a * low + b * high + c) >>> 32);
}