为什么java要求在本地变量时初始化变量

Ash*_*mar 5 java types scope type-conversion

请参阅下面的代码.方法printTest()打印未初始化变量的默认值,但是当它涉及main方法时,java要求变量初始化.谁能解释为什么?

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

  }
Run Code Online (Sandbox Code Playgroud)

小智 11

局部变量主要用于中间计算,而实例变量应该携带用于未来和中间计算的数据.Java并不强制初始化实例变量并允许默认值,但对于局部变量,开发人员调用它来赋值.因此,为了避免错误,您需要初始化局部变量.