I agree that this approach (caching hashcodes for immutable objects) will probably save some calculation at the cost of increasing memory usage, as is usual for memoization techniques. Without any empirical measurements, though, this article isn't very useful. Compiler optimizations aside, the internals of the hashmap implementation may render this tweak moot.