Item 4 (Item 5 in the 1st ed.) is about Protecting utility class with private constructor. When you have some class with only static methods (e.g. Math), it is useful to protect instantiation of this class. Standard way, how to implement it, is by private default constructor.
public class MuUtilClass {
private MyUtilClass(){}
// other methods omitted
}
Joshua find out, that you can change the accesibility of the constructor by reflection (AccessibleObject.setAccesible). Hence it is better to throw exception inside the constructor.
public class MuUtilClass {
private MyUtilsClass() {
throw new AssertionError();
}
// other methods omitted
}