静态块与静态变量初始化顺序

时间:2014-09-01 13:54:52

标签: java memory-management static-block

情景1:

class A{
  static int foo=56789;
  static{
   foo=999;
  }
  public static void main(String[] args) { 
   System.out.println(foo);
  }
}

输出:999

情景2:

class A{
  static {
   foo=999;
 }
 static int foo=56789;
 public static void main(String[] args) { 
   System.out.println(foo);
  }
}

输出:56789

在场景2中,它如何为foo变量(在静态块中)分配内存,因为没有提及数据类型(因为代码从顶部到底部运行)。

1 个答案:

答案 0 :(得分:0)

静态块/变量按照它们放置在源代码中的顺序执行。即你用眼睛看到的顺序。

从上到下。