编译器自动优化导致代码可以先后写的问题

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

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


其实上面的代码,编译器会自动编译为:

import java.io.PrintStream;

public class Demo1
{
  static int test = 1;

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

所以导致没有定义的,也可以先赋值。

注意问题:要有static的包围着,static会让编译器自动优化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章