1, in the same object calls this method, hashCode method returns the same integer.
2, equals method returns true calling, hashCode should return the same result.
3, does not require the equals method returns false, hashCode returns a different result, when beneficial to the properties.
4, a null reference hash it to zero