title: Is JDK "upward" or "backward" compatible?
body: <p><strong>Backward</strong> binary compatibility (or <strong>downward</strong> compatibility) - an ability of clients built with an old version of library API to run on a new one (<a href="http://en.wikipedia.org/wiki/Backward_compatibility" rel="noreferrer">wiki</a>).</p>
  
  <p><strong>Upward</strong> binary compatibility (or <strong>forward</strong> compatibility) - an ability of clients built with a new version of library API to run on old one (<a href="http://en.wikipedia.org/wiki/Forward_compatibility" rel="noreferrer">wiki</a>).</p>
  
  <p>The general Sun's document about JDK <a href="http://java.sun.com/j2se/1.5.0/compatibility.html" rel="noreferrer">Incompatibilities in J2SE 5.0 since 1.4.2</a> (and <a href="http://www.oracle.com/technetwork/java/javase/compatibility-137541.html" rel="noreferrer">Java SE 6 compatibility with J2SE 5.0</a> too) describes the compatibility of JDK as following:</p>
  
  <blockquote>
    <p>JDK 5.0 is <strong>upwards</strong> binary-compatible with Java 2 SDK, v1.4.2 except for the incompatibilities listed below. This means that, except for the noted incompatibilities, <strong>class files built with version 1.4.2 compilers will run correctly in JDK 5.0</strong>.</p>
  </blockquote>
  
  <p>I suppose that documentation writers have <strong>mixed up</strong> terms "upward" and "backward" compatibility in this sentence. They describe a "backward" compatibility, but call this feature as "upward" compatibility.</p>
  
  <p>Is this a typo, mistake or intended term here?
  Is JDK "upward" or "backward" compatible?</p>