title: Why might one also use a blank constructor?
body: <p>I was reading some Java recently and came across something (an idiom?) new to me: in the program, classes with multiple constructors would also always include a blank constructor. For example: </p>
  
  <pre><code>public class Genotype {
    private boolean bits[];
    private int rating;
    private int length;
    private Random random;
  
    public Genotype() {              //  &lt;= THIS is the bandit, this one right here
      random = new Random();
    }
  
    /* creates a Random genetoype */
    public Genotype(int length, Random r) {
      random = r;
      this.length = length;
      bits = new boolean[length];
  
      for(int i=0;i&lt;length;i++) {
          bits[i] =random.nextBoolean();
      }
    }
  
    /* copy constructor */
    public Genotype(Genotype g,Random r) {
      random = r;
      bits = new boolean[g.length];
      rating = g.rating;
      length = g.length;
  
      for(int i=0;i&lt;length;i++) {
          bits[i] = g.bits[i];
      }
  
    }
  }
  </code></pre>
  
  <p>The first constructor doesn't seem to be a "real" constructor, it seems as though in every case one of the other constructors will be used. So why is that constructor defined at all?</p>