As far as the initial/default/uninitialized value of is concerned…
…Are array objects initialized (at class and local levels)?
Read it in some SCJP notes:
Array elements are given their default values regardless of whether
the array is declared as an instance or local variable.Array “objects” however will not be initialized if it is declared
locally.
Class members that are reference types get an initial value of null.
Local variables that are reference types are considered unitialized and need to be assigned null or something else explicitly, else the code will not compile.
Try to test this example and see what happens:
Arrays of objects obey the same rules, since they are references themselves.
Now, that’s for the array itself. When speaking about the actual elements of the array, they are null by default regardless of where you declare them: