Here are my 2 cents:
To keep things simple:
2
String objects with value "ABC" would return true to the equals method call. Let the hashcodes a=1, b=2, c=3, etc. So, the hashcodes for both the strings s1, and s2 would return 1+2+3 = 6. Simple!
Now, assuming you have 2 strings such that s1 = "ABC" and s2 = "BAC", then, the equals method returns false! However, the hashcode still returns the same value:
for s1: 1+2+3 = 6
for s2: 2+1+3 = 6.
Hence, a smiple explanation by example to your statements.
Cheers,
Kosh!