<p>
Utility classes, which are a collection of static members, are not meant to be instantiated.
They should therefore not have public constructors.
</p>

<p>
Java adds an implicit public constructor to every class which does not define at least one explicitly.
Hence, at least one non-public constructor should be defined.
</p>

<p>The following code:</p>

<pre>
class StringUtils { // Non-Compliant

  public static String concatenate(String s1, String s2) {
    return s1 + s2;
  }

}
</pre>

<p>should be refactored into:</p>

<pre>
class StringUtils { // Compliant

  private StringUtils() {
  }

  public static String concatenate(String s1, String s2) {
    return s1 + s2;
  }

}
</pre>