Objects.hash () vs Objects.hashCode (), esclarecimento necessário

no Java 7 nós temos

o.hashCode();
Objects.hashCode(o);

    Objects.hash(o);

Os dois primeiros são mais ou menos os mesmos com a verificação do ponto nulo, mas qual é o último?

Quando uma referência de objeto único é fornecida, o valor retornado não é igual ao código de hash dessa referência de objeto.

Por que é que? Quer dizer, nós não precisamos de 3 métodos que façam a mesma coisa, eu entendo isso, mas por que precisamosObjects.hash() em absoluto? Quando você escolheria usar um contra o outro?

questionAnswers(3)

yourAnswerToTheQuestion