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

Sherwin.Wei Lv7
1
2
3
4
5
6
7
8
9
10
11
12
public class Demo1 {
static {
test = 1;
// System.out.println(test);
}
static int test;

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

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

1
2
3
4
5
6
7
8
9
10
11
import java.io.PrintStream;

public class Demo1
{
static int test = 1;

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

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

  • 注意问题:要有static的包围着,static会让编译器自动优化。
Comments
On this page
5.编译器自动优化导致代码可以先后写的问题