Interface : java.util.Comparator
Interface: java.lang.Comparable: compareTo method is referred to as its natural comparison method
You must override hashCode in every class that overrides equals
long -> (int)(f^(f>>> 32))
float -> Float.floatToIntBits(f)
double -> Double.doubleToLongBits(f) -> then long to int
P190: Prefer two-element enum types to boolean parameters