静态初始化块

时间:2016-01-29 16:19:09

标签: java

请您详细说明此代码产生的原因 以下输出:a b c 2 3 4 1
一旦在JVM中加载了类,就会执行静态初始化块,所以我除了先看到b之外。我已经看过其他类似的帖子,但我认为他们不会考虑使用编译时常量初始化静态变量的情况。

public class InitTest{

  public InitTest(){
       s1 = sM1("1");
  }

  static String s1 = sM1("a");

  String s3 = sM1("2");

  {
     s1 = sM1("3");
  }

  static{ s1 = sM1("b"); }

  static String s2 = sM1("c");

  String s4 = sM1("4");

  public static void main(String args[]){
        InitTest it = new InitTest();
  }

  private static String sM1(String s){
       System.out.print(s);  
       return s;
  } 

}

0 个答案:

没有答案