Pregunta de entrevista de Broker Consulting

What is the contract between equals() and hashCode() in Java?