title: Is main a valid Java identifier?
body: <p>One of my kids is taking Java in high school and had this on one of his tests:</p>
  <blockquote>
  <p>Which of the following is a valid identifier in Java?</p>
  <p>a.  <code>123java</code><br />
  b.  <code>main</code><br />
  c.  <code>java1234</code><br />
  d.  <code>{abce</code><br />
  e.  <code>)whoot</code></p>
  </blockquote>
  <p>He answered <strong>b</strong> and got it wrong.</p>
  <p>I looked at the question and argued that <code>main</code> <em>is</em> a valid identifier and that it should have been right.</p>
  <p>We took a look at the Java <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html" rel="noreferrer">spec</a> for identifiers and it reinforced that point.  We also wrote a sample program that had a variable called <code>main</code>, as well as a method.  He created a written rebuttal that included the Java documentation reference, the test program and the teacher ignored it and says the answer is still incorrect.</p>
  <p>Is <code>main</code> a valid identifier?</p>