Código:
ArrayList<String> a;
//System.out.println("\n tamano test 1= "+ a.size());//Esta línea EN ESTE MOMENTO provoca NullPointerException
a= new ArrayList<String>();
System.out.println("\n tamano test 1= "+ a.size());
a.add(null);
System.out.println("\n tamano test 2= "+ a.size());
String[] miArray = new String [5];
System.out.println("\n tamano test 3= "+ miArray.length);
String[] miArray2 = null;//Ahora lo creo igual que el ArrayList... pero igualandolo a null
//System.out.println("\n tamano test 4= "+ miArray2.length); //Esta línea EN ESTE MOMENTO provoca NullPointerException
miArray2=new String[5];
System.out.println("\n tamano test 4= "+ miArray2.length);//Ahora esta misma línea no da error.
Copia el código en el editor de java que uses y prueba a activar líneas y desactivarlas.