Why does Java's hashCode() in String use 31 as a multiplier? | Hacker News Reader