title: Why isn't there a java.lang.Array class? If a java array is an Object, shouldn't it extend Object?
body: <p>Here is the java package-tree:
  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/package-tree.html">http://docs.oracle.com/javase/7/docs/api/java/lang/package-tree.html</a></p>
  
  <p>I read a tutorial on Java which stated that in Java arrays are objects.</p>
  
  <p>Where is the array class? How comes we can make arrays like this:  </p>
  
  <pre><code>byte[] byteArr = new byte[];
  char[] charArr = new char[];
  int[] intArr = new int[];
  </code></pre>
  
  <p>and the arrays will inherit methods from Object; for example:</p>
  
  <pre><code>    byte thisByte = 1;
      byte thatByte = 2;
      byte[] theseBytes = new byte[] {thisByte, thatByte};
      int inheritance = theseBytes.length; //inherited 'length' field and some methods
      int wasntInWill = thatByte.length; //error
  </code></pre>
  
  <p>What's going on here?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>As per the answers, I now know it is a <code>final</code> class in <code>java.lang.reflect</code> package.</p>
  
  <p>I have now created  a package <code>java.lang.reflect</code> in my Android project and have added a class called Array.java to it. To confirm this is in the way of the original class, Eclipse gave me the error "... already exists in path/to/android.jar"</p>
  
  <p>If I write out the same class as <code>java.lang.reflect.Array</code> but change the <code>toString()</code> method... this should work within my application right?</p>