Can You Really Use Any Object as a HashMap Key in Java?

Understanding the hidden rules and common pitfalls of HashMap key types in Java