Hashcode
Hashcodes are typically used to increase the performance of large collection of data. They can be kind of an Object ID but they may not be unique. Imagine a set of buckets lined up on the floor. You are given a piece of paper with a name on it. You take the name and calculate an integer code from it by using A is 1, B is 2 and so on, and adding these numeric values of all the letters in the name. The given name will ALWAYS result in the same code.
Alex -> 1+12+5+24 = 42 | Bob -> 2+15+2 = 19 | Dirk -> 4+9+18+11 = 42 | Fred -> 6+18+5+4 = 33
Now the way you use that code is to determine which bucket to place the piece of paper into it. Upon asked, you simply use the same algorithm and the hashcode tells you in which bucket you should look to find the name. You observed the flaw that the different names can result in same hashcodes. 'Amy' and 'May' will have the same hashcode and the hashcode tells you which bucket to go into, but not how to locate the name once you are in that bucket.