編譯器自動優化致使代碼能夠前後寫的問題

public class Demo1 {
    static {
        test = 1;
//        System.out.println(test);
    }
    static int test;

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}


其實上面的代碼,編譯器會自動編譯爲:java

import java.io.PrintStream;

public class Demo1
{
  static int test = 1;

  public static void main(String[] args)
  {
    System.out.println("Hello World!");
  }
}

因此致使沒有定義的,也能夠先賦值。ide

注意問題:要有static的包圍着,static會讓編譯器自動優化。
優化

相關文章
相關標籤/搜索