Objects and Collections - Programming

Q1:

What will be the output of the program?
public class Test 
{ 
    private static int[] x; 
    public static void main(String[] args) 
    { 
        System.out.println(x[0]); 
    } 
}

A 0

B null

C Compile Error

D NullPointerException at runtime

ANS:A - 0

In the above code the array reference variable x has been declared but it has not been instantiated i.e. the new statement is missing, for example: private static int[]x = new int[5]; private static int[x] declares a static i.e. class level array. the 'new' keyword is the word that actually creates said array. int[5] in association with the new sets the size of the array. so since the above code contains no new or size decalarations when you try and access x[0] you are trying to access a member of an array that has been declared but not intialized hence you get a NullPointerException at runtime.