title: Why is L the prefix for reference types (instead of some other letter)?
body: <p>Why was <code>L</code> chosen as the prefix for references in type signatures? Does <code>L</code> stand for something, like <code>B</code> stands for <code>byte</code>, and <code>I</code> stands for <code>int</code>? Or was it chosen because <code>C</code> was already assigned to <code>char</code>?</p>
  
  <p>For example, </p>
  
  <pre><code>System.out.println( new String[0].getClass().getName() );
  </code></pre>
  
  <p>Yields:</p>
  
  <pre><code>[Ljava.lang.String;
  </code></pre>
  
  <p>I'm already aware of the explanations in the <a href="http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.3.2" rel="noreferrer">Java spec</a> and the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getName%28%29" rel="noreferrer">Class.getName method</a> javadoc.</p>