(1st) pages 290-291 (Section 7.6.3) , also have a look at the material about hash tables in the second edition
(2nd) pages 350-356 (Section 8.3)
public static final int CONSTANT = 33; public int hashCode() { int nameHashCode = name.hashCode(); int numberHashCode = (int) number; int gpaHashCode = (new Double(gpa)).hashCode(); return (nameHashCode + CONSTANT * (numberHashCode + CONSTANT * gpaHashCode)); }