Pole - co když deklarujeme, ale nevytvoříme?

Co kdybychom pole pouze deklarovali a nevytvořili:

Person[] lidi; 
lidi[0] = new Person("Václav Klaus");    

Toto by skončilo s běhovou chybou "NullPointerException", pole neexistuje, nelze do něj tudíž vkládat prvky!

Pokud tuto chybu uděláme v rámci metody:

public class Pokus { 
   public static void main(String args[]) { 
      String[] pole; 
      pole[0] = "Neco"; 
   }
}    

překladač nás varuje:

Pokus.java:4: variable pole might not have been
    initialized pole[0] = "Neco"; ^ 1 error 

Pokud ovšem

pole

bude proměnnou objektu/třídy:

public class Pokus {
   static String[] pole; 
   public static void main(String args[]) { 
      pole[0] = "Neco"; 
   }
} 

Překladač chybu neodhalí a po spuštění se objeví:

Exception in thread "main"
    java.lang.NullPointerException at Pokus.main(Pokus.java:4)