Example:
class Test
{
int[] a;
public static void main(String[] args)
{
Test t1=new Test();
System.out.println(t1.a); //null
System.out.println(t1.a[0]); //R.E:NullPointerException
}
}
Instance level:
Example 1:
int[] a;
System.out.println(obj.a); //null
System.out.println(obj.a[0]); //R.E:NullPointerException
Example 2:
int[] a=new int[3];
System.out.println(obj.a); //[I@3e25a5
System.out.println(obj.a[0]); //0
Static level:
Example 1:
static int[] a;
System.out.println(a); //null
System.out.println(a[0]); //R.E:NullPointerException
Example 2:
static int[] a=new int[3];
System.out.println(a); //[I@3e25a5
System.out.println(a[0]); //0
Local level:
Example 1:
int[] a;
System.out.println(a); // C.E: variable a might not have been initialized
System.out.println(a[0]);
Example 2:
int[] a=new int[3];
System.out.println(a); //[I@3e25a5
System.out.println(a[0]); //0
Once we created an array every element is always initialized with default values
irrespective of whether it is static or instance or local array.