Dlaczego java prosi o zainicjowanie zmiennych, gdy jest lokalna

Zobacz poniższy kod. Metoda printTest () drukuje domyślną wartość niezainicjowanych zmiennych, ale jeśli chodzi o metodę główną, java prosi o inicjalizację zmiennej. Czy ktoś może wyjaśnić dlaczego?

   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);
  }

  }

questionAnswers(7)

yourAnswerToTheQuestion