Think of an array as a special kind of object that is native to the
java language. Also, declaration and initialization rules are different for an array.
You don't instantiate from an Array class, like:
Array myArray = new Array("int", 5) ; // Nonsense.
But more as:
int [] intArray = new int[14] ;
or:
int [] intArray = { 1, 2, 3, 4, 5, 1101 } ;
They are part of the language. And like any other object, array objects live on the heap. Array objects have all the methods that class Object has, plus the member 'length' that you can read to determine the length of the array (the number of components).
Edit: Some information from the JLS about arrays:
10.8 Class Objects for Arrays
Every array has an associated Class object, shared with all other arrays with the same component type. The direct superclass of an array type is Object. Every array type implements the interfaces Cloneable and java.io.Serializable.
This is shown by the following example code:
which prints:
class [I
class java.lang.Object
where the string "[I" is the run-time type signature for the class object "array with component type int".
[ July 30, 2008: Message edited by: Ronald Schild ]