Warum Java fragt, um die Variablen zu initialisieren, wenn es lokal ist

Bitte beachten Sie den Code unten. Die Methode printTest () gibt den Standardwert der nicht initialisierten Variablen aus, aber wenn es um die Hauptmethode geht, fragt Java nach der Variableninitialisierung. Kann jemand erklären, warum?

   public class Test1 {

    public static void main(String[] args) {   
      int j;
      String t;

      System.out.println(j);
      System.out.println(t);
    }
  }


  public class Test2 {

   int i;
   String test;

  public static void main(String[] args)   {   
    new Test().printTest();
  }

   void printTest()   {
     System.out.println(i);
     System.out.println(test);
  }

  }

Antworten auf die Frage(7)

Ihre Antwort auf die Frage